自定义api通过aggregator注册进入k8s api系统,内部通过一个proxy转到对应的自定义api进程(放在pod中), 

自定义API通过main函数,调用生成的zz_generated.api.register.go中的注册函数,此函数有一个全局变量ApiVersion,apiversion中将我们定义的type(包括其deepcopy函数),还有版本转换函数conversion(zz_generated.conversion.go),默认值处理函数(zz_generated.defaults.go)注册进apiversion中,有些情况下也会注册deepcopy函数。(客户端的scheme也会调用并注册这些个转换函数)

 

client中适用于服务client-go或者controller,client部分只有getter,即获取资源的interface。client中scheme会添加conversion和default函数,用于进行client的创建。客户端的crud会用scheme.ParameterCodec进行编码

informer则用资源的数据结构注册informer,只有资源informer,有informer和lister接口。

lister拥有获取资源的接口。

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐