生成了operator,对其基础文件进行讲解
cmd里manager中main.go可以不用修改
deploy里operator.yaml就是部署的operator。启动的Deployment,生成的就是一个pod
role.yaml角色rbac
role_binding角色绑定,使用service_account.yaml
go.mod
引入
eg
module kubesphere.io/fluentbit-operator
go 1.13
require (
github.com/go-logr/logr v0.1.0
github.com/go-openapi/errors v0.19.2
github.com/joho/godotenv v1.3.0
github.com/json-iterator/go v1.1.8
github.com/onsi/ginkgo v1.11.0
github.com/onsi/gomega v1.8.1
k8s.io/api v0.17.2
k8s.io/apimachinery v0.17.2
k8s.io/client-go v0.17.2
k8s.io/klog v1.0.0
sigs.k8s.io/controller-runtime v0.5.2
)
需要在go env设置为auto模式
GO11MODULE="auto"
自动配置相应的包
开发Operator流程
operator-sdk----->添加CRD---->添加controller---->Build&Run
运行创建的operator
operator-sdk add --api-version=k8s.imooc.com/v1alpha1 --kind=ImoocPod
operator-sdk add --api-version=k8s.imooc.com(自己命名)/v1alpha1(版本号) --kind=ImoocPod
会自己生成k8s/v1alpha1文件夹,有doc.go,imoocpod.type.go,register.go,zz_generated.deepcopy.go四个文件
添加controller
operator-sdk add controller --api-version=k8s.imooc.com/v1alpha1 --kind=ImoocPod
会加imooccpod_controller.go文件夹
开发controller
网友评论