Kubernetes编程—— 如何操作自定义资源
如何操作自定义资源
client-go 为每种 kubernetes 内置资源提供对应的 clientset 和 informer。
那如果我们要监听和操作自定义资源对象,应该如何做呢?
这里我们有两种方式:
-
- 使用 client-go 提供的 dynamicClient 来操作自定义操作资源对象,当然由于 dynamicClient 是基于 RESTClient 实现的,所以我们可以使用 `RESTClient` 来达到同样的目的。
- 使用 code-generator 来帮助我们生成我们需要的代码,这样我们就可以使用 client-go 为 kubernetes 内置资源对象提供的方式监听和操作自定义资源了。
code-generator 是 kubernets 官方提供的一组代码生成工具,它主要有两个应用场景:
-
- 为 CRD 编写自定义 controller 时,可以使用它来生成我们需要的 versioned client、informer、lister 以及其他工具方法。
- 编写自定义 API Server 时,可以用它来 internal 和 versioned 类型的转换 defaulters、internal 和 versioned 的 clients 和 informers。