..
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:59:33 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:59:33 +08:00
2025-03-30 10:59:33 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00
2025-03-30 10:08:43 +08:00

如何开发 k8s operator

准备

# https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v4.5.1
curl -L -o kubebuilder "https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)"
chmod +x kubebuilder && sudo mv kubebuilder /usr/local/bin/
kubebuilder version
Version: main.version{KubeBuilderVersion:"4.5.1", KubernetesVendor:"1.32.1", GitCommit:"0ace7a8753c52b35014e43edc2a0b0454b78e769", BuildDate:"2025-02-21T20:16:18Z", GoOs:"darwin", GoArch:"arm64"}

CRD开发(API)

  1. 编辑CRD
make manifests
make generate
  1. 安装
make install
  1. 编辑样例
apiVersion: devops.go17/v1beta1
kind: AccessBinding
metadata:
  labels:
    app.kubernetes.io/name: operator
    app.kubernetes.io/managed-by: kustomize
  name: accessbinding-sample
spec:
   namespace: 'default'
   deployment: 'nginx-test'
  1. 验证
kubectl apply -f config/samples/devops_v1beta1_accessbinding.yaml
kubectl get AccessBinding
kubectl delete AccessBinding accessbinding-sample

Controller开发