1. 系统架构:
操作系统 角色 ip地址 版本
centos7 k8s服务器 10.0.0.11 k8s1.13
macos kubebuilder客户端 - kubebuilder3.2
  1. 将 k8s服务器的配置文件复制到 macos开发机器:
    scp root@10.0.0.11:/root/.kube/config ~/.kube/config

  2. 下载 kubebuilder3.2:

    wget https://github.com/kubernetes-sigs/kubebuilder/releases/download/v3.2.0/kubebuilder_darwin_amd64
    chmod +x kubebuilder_darwin_amd64
    mv kubebuilder_darwin_amd64 /usr/bin/kubebuilder
  3. 创建项目:

    mkdir demo
    cd demo
    go mod init demo
    kubebuilder init --domain com.job520
  4. 创建 api:

    kubebuilder create api \
         --group demo \
         --version v1 \
         --kind Demo \
         --resource=true \
         --controller=true
  5. 创建 webhook(可选):

    kubebuilder create webhook \
         --group demo \
         --version v1 \
         --kind Demo \
         --defaulting \
         --programmatic-validation
  6. 自定义k8s资源 - CRD 相关操作:

    1. 部署:
      make install
      # ./bin/kustomize build config/crd | kubectl create -f -
    2. 删除:
      make uninstall
      # ./bin/kustomize build config/crd | kubectl delete -f -
  7. 监听器 - controller 相关操作:

    1. 本地运行:
      make run
    2. 构建镜像:
      make docker-build docker-push IMG=job520/demo:1.0
    3. 部署:
      make deploy IMG=job520/demo:1.0
    4. 删除:
      ./bin/kustomize build config/default | kubectl delete -f -
  8. 资源实体 - resource 相关操作:

    1. 创建:
      kubectl create -f config/samples/demo_v1_demo.yaml
    2. 删除:
      kubectl delete -f config/samples/demo_v1_demo.yaml
文档更新时间: 2024-04-20 10:57   作者:lee