由于一般情况下,我们的生产环境(production)与测试环境或预生产环境不会处于同一个k8s集群,故,这次,会使用一个新的 k8s 集群部署我们的测试示例。
1. 查看 k8s config
$ cat ~/.kube/configapiVersion: v1clusters:...server: https://192.168.20.82:6443...
2. 配置环境变量
项目页面 -> 用户设置 -> CI/CD -> 变量

3. 设置 .gitlab-ci.yml
...deploy_production:stage: productionimage: harbor.xiodi.cn/tools/kubectl:1.14.8variables:INGRESS_HOST: production.xiodi.cnREGISTRY_VERSION: $CI_COMMIT_TAGtags:- docker- host20133-dockerenvironment:name: productionurl: http://production.xiodi.cn/helloscript:- export- cat "$KUBE82_CONFIG" > ~/kube82- cat ~/kube82- export KUBECONFIG=~/kube82- kubectl delete --ignore-not-found=true secret regcred- kubectl create secret docker-registry regcred --docker-server=$CI_REGISTRY --docker-username=$GITLAB_DEPLOY_USER --docker-password=$GITLAB_DEPLOY_PW- cat Deploy/kubernetes/deployment-edu-java-spring.yml | envsubst | kubectl apply -f -- cat Deploy/kubernetes/service-edu-java-spring.yml | envsubst | kubectl apply -f -- cat Deploy/kubernetes/ingress-edu-java-spring.yml | envsubst | kubectl apply -f -only:variables:- $CI_COMMIT_TAG =~ /^v.*/
创建合并请求:从 dev 合并到 master,创建 v1.0 tag
4. k8s 验证
$ kubectl get pods$ kubectl get ingress
