mkdir -p $HOME/projects/memcached-operator cd $HOME/projects/memcached-operator operator-sdk init --domain example.com --repo github.com/example/memcached-operator
operator-sdk create api --group cache --version v1alpha1 --kind Memcached --resource --controller
比如:zz_generated.deepcopy.go:包含了自动生成的深度拷贝函数。深度拷贝函数用于创建结构体的深度拷贝,在 k8s 中,控制器通常需要对资源对象进行深度拷贝,以避免对共享状态的无意修改。
memcached_types.go:定义了自定义资源的 Go 结构体类型,以及 Spec 和 Status 字段。这个文件在执行 make generate 之前可能已经存在,但 make generate 会确保该文件中的代码符合最新的 CRD 定义要求。
cache.example.com_memcacheds.yaml:这个文件是生成的 CRD 定义文件,描述了自定义资源的 API 结构、验证规则、默认值等。它定义了如何在 Kubernetes 集群中创建和管理该 CRD 的实例。
make docker-build IMG=memcached-operator:latest make docker-push IMG=memcached-operator:latest
kubectl apply -f config/samples/cache_v1alpha1_memcached.yaml kubectl get memcached
kubectl logs -l control-plane=controller-manager -n crd-test-system --tail=20
- 镜像拉取出了问题,暂时没成功