用于 client-go 的版本化客户端集

问题描述

我正在阅读一些代码 https://github.com/openshift/router/blob/master/pkg/router/controller/factory/factory.go

在这个 go 文件中,它引用了 3 个客户端集,我使用了标准的 K8s 客户端集 - k8s.io/client-go/kubernetes,但我不明白为什么许多项目喜欢生成新的客户端集?为什么标准的 K8s 客户端集没有提供足够的 API 或功能?任何人都可以给出想法或示例,为什么某些项目想要生成新的客户端集?有什么用?

    kclientset "k8s.io/client-go/kubernetes"

    projectclient "github.com/openshift/client-go/project/clientset/versioned/typed/project/v1"
    routeclientset "github.com/openshift/client-go/route/clientset/versioned"

解决方法

但我不明白为什么很多项目喜欢生成新的客户端?

projectclient "github.com/openshift/client-go/project/clientset/versioned/typed/project/v1" routeclientset "github.com/openshift/client-go/route/clientset/versioned"

在这里,OpenShift 项目决定通过创建自己的 Custom Resource扩展 Kubernetes。创建自定义资源时,您通常还会创建一个 custom controller - 这两个可以使用例如生成kubebuilder 并且为新类型拥有生成的客户端非常方便。这可以在创建自己的自定义资源的许多不同项目中看到。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...