ITTALK圈
码龄8年
关注
提问 私信
  • 博客:41,899
    41,899
    总访问量
  • 37
    原创
  • 2,166,946
    排名
  • 653
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
  • 加入CSDN时间: 2016-10-15
博客简介:

qq_36407557的博客

查看详细资料
个人成就
  • 获得65次点赞
  • 内容获得54次评论
  • 获得84次收藏
  • 代码片获得104次分享
创作历程
  • 5篇
    2022年
  • 33篇
    2021年
  • 1篇
    2019年
  • 1篇
    2018年
成就勋章
TA的专栏
  • kubernetes apiserver系列
    3篇
  • kubernetes client-go系列
    18篇
  • 图示流程
    3篇
  • sigs.k8s.io controller-runtime系列
    13篇
  • 转载
    2篇
兴趣领域 设置
  • Java
    java
  • 数据结构与算法
    算法
  • 大数据
    hbasehadoophivestormzookeeperspark
  • 云原生
    zookeeperdockeretcdjenkinsdevopskubernetes云原生微服务serverlessservice_mesh
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

344人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

k8s apiserver启动执行流程之aggregatorServer

本文主要分析kubernetes在启动kube-apiserver时,创建聚合服务的过程。总览中概括性标记了流程。本节会详细分析,主要有以下几点:构建apiextensionsapiserver.Config扩展配置 – 其实就是包装了通用apiserver配置和其他额外的配置...
原创
发布博客 2022.06.29 ·
1082 阅读 ·
1 点赞 ·
3 评论 ·
2 收藏

k8s apiserver之启动执行流程总览二

kubernetes在启动kube-apiserver的执行流程
原创
发布博客 2022.06.17 ·
774 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

k8s apiserver之启动执行流程总览一

apiserver之启动执行流程总览启动执行流程总览apiserver之启动执行流程总览启动执行流程总览server.go启动执行流程总览本文主要分析kubernetes在启动kube-apiserver的执行流程,本文不作深入分析,后续会展开server.go函数 // 启动命令行的实现func NewAPIServerCommand() *cobra.Command {// 设置默认的apiserver启动选项s := options.NewServerRunOpti
原创
发布博客 2022.06.16 ·
1191 阅读 ·
3 点赞 ·
1 评论 ·
4 收藏

client-go之tools/leaderelection包源码分析

client-go之tools/leaderelection包源码分析tools/leaderelection包源码分析client-go之tools/leaderelection包源码分析tools/leaderelection包healthzadaptor.gometrics.goleaderelection.goresourcelock包tools/leaderelection包用于需要进行leader控制的controller等.healthzadaptor.go函数// 创建一个基本的
原创
发布博客 2022.03.02 ·
689 阅读 ·
2 点赞 ·
2 评论 ·
2 收藏

client-go之tools/events包源码分析

client-go之tools/events包源码分析tools/events包源码分析client-go之tools/events包源码分析tools/events包helper.gointerfaces.goevent_broadcaster.gotools/events包用于记录和报告的所有客户端事件的逻辑helper.go函数// 定义变量mapping(一个map保存了 三种core/v1/v1beta1 gv的)var mapping = map[schema.GroupVersi
原创
发布博客 2022.03.01 ·
593 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

client-go之tools/cache包源码分析

tools/cache包源码分析tools/cache包controller.godelta_fifo.goexpiration_cache.gofifo.goheap.goindex.golister.golistwatch.gomutation_cache.gomutation_detector.goreflector.goshared_informer.gostore.gothread_safe_store.goundelta_store.gotools/cache包k8s认证的工具类(目前只有关
原创
发布博客 2021.10.11 ·
1188 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

client-go之tools/auth包源码分析

tools/auth包源码分析tools/auth包tools/auth包k8s认证的工具类(目前只有关于exec方式的工具类)函数// LoadFromFile 从文件路径解析一个 Info 对象.func LoadFromFile(path string) (*Info, error) { var info Info if _, err := os.Stat(path); os.IsNotExist(err) { return nil, err } data, err := iou
原创
发布博客 2021.08.26 ·
245 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之scale包源码分析

scale包源码分析scale包util.gointerface.goclient.goscale包获取实现了RESTMapper(通过discovery client操作apiserver,通过gvr获取gvr/gvk,或者获取RESTMapping)接口的结构体util.go接口// PreferredResourceMapper 确定要scale资源的首选版本type PreferredResourceMapper interface { // ResourceFor 获取部分资源并返回
原创
发布博客 2021.08.25 ·
608 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之restmapper包源码分析

client-go之restmapper包源码分析restmapper包源码分析client-go之restmapper包源码分析restmapper包discovery.goshortcut.gocategory_expansion.gorestmapper包获取实现了RESTMapper(对应一个gv下的resources)接口的结构体discovery.go结构体// APIGroupResources 是一个 API 组,具有版本到资源的映射。type APIGroupResource
原创
发布博客 2021.08.22 ·
676 阅读 ·
2 点赞 ·
1 评论 ·
2 收藏

client-go之rest包源码分析

rest包源码分析rest包client.goconfig.goexec.goplugin.gorequest.gotransport.gourl_utils.gourlbackoff.gowarnings.gowith_retry.gowatch包rest包主要是提供对外(就是自定义程序所引用的)相关的基础类/接口,client、config、exec、request等具体实现和构造的基础client.go接口.go// 接口用于与 Kubernetes REST api 进行交互的操作集。t
原创
发布博客 2021.08.05 ·
1109 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

webhook server创建启动流程

发布资源 2021.08.03 ·
png

client-go之metadata包(下篇)源码分析

@TOCmetadata包用于获取gvr对应的metadata(gvr的TypeMeta和ObjectMeta)的informer/lister/clientmetadatalister包interface.go 定义了获取(从索引器(缓存)中get/list)obj的接口接口// Lister 获取资源和获取NamespaceLister。type Lister interface { // List 列出索引器(缓存)中的所有资源的MetaData。 List(selector la
原创
发布博客 2021.07.30 ·
665 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之metadata包(上篇)源码分析

@TOC阅读本文,可以参考分析dynamic文章,两篇类似,区别是操作对象侧重点不同metadata包用于获取gvr对应的metadata(gvr的TypeMeta和ObjectMeta)的informer/lister/clientinterface.go接口.go// ResourceInterface的工厂模式,方法Resource可以获取对应gvr的ResourceInterface接口type Interface interface { Resource(resource sche
原创
发布博客 2021.07.30 ·
625 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之listers包源码分析

listers包源码分析listers包admissionregistration包listers包从cache.Indexer中获取原生k8s的对象/列表admissionregistration包以admissionregistration包做分析,其他的类似,不在分析v1expansion_generated.go 用于扩展resource client接口// MutatingWebhookConfigurationListerExpansion 将自定义方法添加到Mutati
原创
发布博客 2021.07.30 ·
264 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之kubernetes包源码分析

client-go之kubernetes包源码分析kubernetes包源码分析client-go之kubernetes包源码分析kubernetes包clientset.goscheme包typed包kubernetes包生成原生k8s的对象的client,用于访问kubernetes API(create、update、patch等等)clientset.gok8s原生type的restclient的集合,用来统一管理和调配接口// Interface 定义了一个DiscoveryInte
原创
发布博客 2021.07.30 ·
406 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

client-go之informers包源码分析

client-go之informers包源码分析informers包用于生成各种gvk对应的informer(注意这里这是针对原生k8s的对象)generic.go注意: 这里的informer和informers包是有区别的,虽然具体的informer底层都是包装了SharedIndexInformer,但是另一个属性是不相同的。这里是gvr,而informers包中是gr接口// GenericInformer 是 SharedIndexInformer 的类型,它将根据类型定位并委托给其
原创
发布博客 2021.07.20 ·
525 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之dynamic包(下篇)源码分析

client-go之dynamic包(下篇)源码分析@TOCdynamic包用于动态生成informer/lister/client等dynamiclister包interface.go 定义了获取(从索引器(缓存)中get/list)obj的接口接口// Lister 获取资源和获取NamespaceLister。type Lister interface { // List 列出索引器(缓存)中的所有资源。 List(selector labels.Selector) (ret [
原创
发布博客 2021.07.19 ·
543 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之dynamic包(上篇)源码分析

@TOCdynamic包用于动态生成informer/lister/client等interface.go接口.go// ResourceInterface的工厂模式,方法Resource可以获取对应gvr的ResourceInterface接口type Interface interface { Resource(resource schema.GroupVersionResource) NamespaceableResourceInterface}// 操作对应obj的接口type
原创
发布博客 2021.07.19 ·
629 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

client-go之discovery包(下篇)源码分析

@TOCdiscovery包用于发现服务器支持的API 组、版本和资源的方法及服务端支持的swagger apicachedlegacy.go 主要用途是兼容老版本// NewMemCacheClient 已弃用。直接使用 memory.NewMemCacheClient 。func NewMemCacheClient(delegate discovery.DiscoveryInterface) discovery.CachedDiscoveryInterface { return memo
原创
发布博客 2021.07.16 ·
365 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

client-go之discovery包(上篇)源码分析

@TOCdiscovery包用于发现服务器支持的API 组、版本和资源的方法及服务端支持的swagger apidiscovery_client.godiscovery_client.go定义全局变量const ( // 如果动态获取resource失败,重试的次数 defaultRetries = 2 // protobuf mime 类型 mimePb = "application/com.github.proto-openapi.spec.v2@v1.0+prot
原创
发布博客 2021.07.16 ·
527 阅读 ·
2 点赞 ·
3 评论 ·
1 收藏
加载更多