官网https://book.kubebuilder.io/
中文文档https://cloudnative.to/kubebuilder/
学习链接operator实战
一 简介
kubebuilder也是一个脚手架,帮助我们更快的编写operator
二 安装
linux && mac
os=$(go env GOOS)
arch=$(go env GOARCH)
# 下载 kubebuilder 并解压到 tmp 目录中
curl -L https://go.kubebuilder.io/dl/2.3.1/${os}/${arch} | tar -xz -C /tmp/
# 将 kubebuilder 移动到一个长期的路径,并将其加入环境变量 path 中
# (如果你把 kubebuilder 放在别的地方,你需要额外设置 KUBEBUILDER_ASSETS 环境变量)
sudo mv /tmp/kubebuilder_2.3.1_${os}_${arch} /usr/local/kubebuilder
export PATH=$PATH:/usr/local/kubebuilder/bin
三 初始化
go mod init test
kubebuilder init --domain test.org --license apache2 --owner "The Kubernetes demo"
kubebuilder create api --group test --version v1beta1 --kind Test
kubebuilder create webhook --group test --version v1beta1 --kind Test --defaulting --programmatic-validation
#这里有个小坑 因为我们初始化kind必须为大写开头 在go中小写开头表示包外不可见
#无法被引用到就会出问题
在部署前 需要在k8s集群中初始化rbac的权限
make install
make run
四 源码调用剖析
这里参照 operator-sdk
https://blog.csdn.net/weixin_45413603/article/details/108159043