在kubernetes go客户端中,什么是clientset
?
它在多个地方被定义。
1.在client-go
软件包中。https://github.com/kubernetes/client-go/blob/62b2cb756b8cea8fba00764ff123993eb44dbd48/kubernetes/clientset.go#L120
1.在kubernetes
软件包www.example.com中https://github.com/kubernetes/kubernetes/blob/80e344644e2b6222296f2f03551a8d0273c7cbce/pkg/client/clientset_generated/internalclientset/clientset.go#L64
文档中对这两种情况的说明是相同的:
Clientset包含组的客户端。每个组在Clientset中只包含一个版本。
我有点糊涂了。什么是团体?
3条答案
按热度按时间ppcbkaq51#
Kubernetes中的每种资源类型(Pod、部署、服务等)都是API组的成员。这些API组在逻辑上将不同的类型“分组”。
core
extensions
batch
apps
authentication
autoscaling
组中还包含版本。版本允许开发人员对API进行重大更改,并在进行更改时进行管理。组中的版本示例
core/v1
extensions/v1beta
apps/v1beta1
batch/v1
、batch/v2alpha1
(注意同一组中的两个版本)因此,客户端文档说明它为每个组创建不同的客户端。
k10s72fa2#
@Jose Armesto给出的描述是正确的,我想用一个片段来支持它。
gorkyyrv3#
这两个地方的代码实际上是一样的,Kubernetes项目在一个mono-repo(
kubernetes/kubernetes
)中编写和管理所有的代码,然后将他们希望其他项目使用的代码发布到其他repo中,以便更好地与Go模块系统一起工作,在下表中可以看到发布过程的详细参考,尽管我不确定该过程在哪里有明确的记录。顺便说一句,您应该通过
k8s.io/client-go
使用此代码作为导入,它将从github.com/kubernetes/client-go
存储库中获取。