- 系统架构:
操作系统 | 角色 | ip地址 | 版本 |
---|---|---|---|
centos7 | k8s服务器 | 10.0.0.11 | k8s1.13 |
macos | kubebuilder客户端 | - | kubebuilder3.2 |
将 k8s服务器的配置文件复制到 macos开发机器:
scp root@10.0.0.11:/root/.kube/config ~/.kube/config
下载 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
创建项目:
mkdir demo cd demo go mod init demo kubebuilder init --domain com.job520
创建 api:
kubebuilder create api \ --group demo \ --version v1 \ --kind Demo \ --resource=true \ --controller=true
创建 webhook(可选):
kubebuilder create webhook \ --group demo \ --version v1 \ --kind Demo \ --defaulting \ --programmatic-validation
自定义k8s资源 - CRD 相关操作:
- 部署:
make install # ./bin/kustomize build config/crd | kubectl create -f -
- 删除:
make uninstall # ./bin/kustomize build config/crd | kubectl delete -f -
- 部署:
监听器 - controller 相关操作:
- 本地运行:
make run
- 构建镜像:
make docker-build docker-push IMG=job520/demo:1.0
- 部署:
make deploy IMG=job520/demo:1.0
- 删除:
./bin/kustomize build config/default | kubectl delete -f -
- 本地运行:
资源实体 - resource 相关操作:
- 创建:
kubectl create -f config/samples/demo_v1_demo.yaml
- 删除:
kubectl delete -f config/samples/demo_v1_demo.yaml
- 创建:
文档更新时间: 2024-04-20 10:57 作者:lee