参考资料
kubeconfig文件指定访问的K8S集群: https://kubernetes.io/zh-cn/docs/concepts/configuration/organize-cluster-access-kubeconfig/
通过Kubectl镜像控制K8S: https://hub.docker.com/r/bitnami/kubectl/
Gitlab CICD设置环境变量: https://docs.gitlab.cn/jh/ci/variables/#对于一个项目
操作步骤
获取kubeconfig,在k8s的master节点上执行以下命令获取编码字符串
echo $(cat ~/.kube/config | base64) | tr -d " "
将编码字符串存入GitLab CICD的环境变量中: 项目页面 -> 设置 -> CICD -> 变量 -> 添加变量KUBE_CONFIG,勾上受保护、隐藏保证变量不泄露
编写.gitlab-ci.yml文件
stages:
- run_k8s
run_k8s_job:
image: bitnami/kubectl:1.25.3-debian-11-r4
stage: run_k8s
script:
- echo $KUBE_CONFIG |base64 -d > kube-config # 将配置文件转码后写入 kube-config
- kubectl --kubeconfig=kube-config -n gitlab get pods # 控制k8s执行命令