2021-04-30

生成了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

你可能感兴趣的:(2021-04-30)