client-go
2021-04-14 10:09:07 40 举报
AI智能生成
k8s clien-go 关键代码梳理
作者其他创作
大纲/内容
informers
每种k8s资源的informer实现
每种k8s资源的informer实现
infomer保证了k8s不适用中间件的情况下的实时性、可靠性、顺序性
SharedInformerFactory
包括所有的资源分组接口,资源分组又按照版本、资源的层级找到Informer
NewSharedInformerFactory()
core
interface.go
定义了core这个分组下所有的版本
v1
Interface
定义了core/v1下所有资源的 Informer
定义了core/v1下所有资源的 Informer
PodInformer
ServiceInformer
...
...
按照 group/version/resource 的层级结构组织 Informer
按照 group/version/resource 的层级结构组织 Informer
internalinterfaces
SharedInformerFactory
listers
每种k8s资源提供Lister方法
每种k8s资源提供Lister方法
kubernetes
提供ClientSet访问k8s
提供ClientSet访问k8s
clientset.go
ClientSet
corev1.CoreV1Client
appsv1.AppsV1Client
NewForConfig()
初始化ClientSet
typed
对每种资源都封装了RESTClient接口,便于外部直接调用
scheme
register.go
runtime.SchemeBuilder方法调用 api 这个库暴露的所有资源的
AddScheme方法注册所有资源
AddScheme方法注册所有资源
rest
提供RESTClient访问k8s
提供RESTClient访问k8s
client.go
RESTClient
RESTClientFor()
dynamic
DynamicClient动态客户端
DynamicClient动态客户端
NewForConfig()
传入GVK,调用RESTClient请求k8s资源,返回Unstructured数据
discovery
DiscoveryClient发现客户端
DiscoveryClient发现客户端
DiscoveryClient
用于发现k8s支持的资源组、资源版本、资源信息
用于发现k8s支持的资源组、资源版本、资源信息
NewDiscoveryClientForConfig()
ServerGroupsAndResources()
返回所有的资源信息
返回所有的资源信息
请求 /api,数据存放在 APIVersions 中
请求 /apis,数据存放在 APIGroupList 中
tools
clientcmd
BuildConfigFromFlags()
cache
SharedIndexInformer
AddEventHandler()
Run()
0 条评论
下一页