深入解析 Kubebuilder:让编写 CRD 变得更简单
KUBERNETES CRD如此简单
https://sealyun.com/blog/2019/07/20/crd/
go get github.com/kubernetes-sigs/kustomize
https://cert-manager.io
https://cert-manager.io/docs/installation/kubernetes/
扩展kubernetes两个最常用最需要掌握的东西:自定义资源CRD 和 adminsion webhook, 本文教你如何十分钟掌握CRD开发.
https://book.kubebuilder.io
api-machinery
通过自定义资源扩展Kubernetes
https://blog.gmem.cc/crd
深入解析 Kubebuilder:让编写 CRD 变得更简单
CustomResourceDefinition(CRD)
ThirdPartyResources(TPR)
kubernets-style API types
https://www.jianshu.com/p/2884f002f055
Kubernetes CRD - 从代码生成到使用
CustomResourceDefinition(CRD)是 v1.7 + 新增的无需改变代码就可以扩展 Kubernetes API 的机制,用来管理自定义对象。它实际上是 ThirdPartyResources(TPR) 的升级版本,而 TPR 已经在 v1.8 中删除。
一些使用场景:
提供/管理外部数据存储/数据库(例如 CloudSQL/RDS 实例)
对k8s基础资源进行更高层次的抽象(比如定义一个etcd集群)
其实crd在很多k8s周边开源项目中有使用,比如ingress-controller和众多的operator
了解 api-machinery 对于编写 crd controller 或者 aggregation apiserver很重要,由于api-machinery 以及 controller 逻辑的复杂性,有很多辅助工具可以帮助生成很多相关的代码,比如 kubebuilder, wrangler, 这里我们只关注 api-machinery 相关的代码,可以找到需要上面流程中提到的注册,转换代码. 比如这里