参考:https://www.qikqiak.com/post/gitlab-ci-k8s-cluster-feature/
1. 创建部署令牌和变量
Kubernetes需要从项目的GitLab容器注册表中获取定制的Docker映像
- 在GitLab中创建docker 镜像库部署令牌
- 使用我们的部署令牌凭据创建环境变量
- 创造和使用 kubernetes image pull secret
(1)创建部署令牌
项目 -> 设置 -> 仓库 -> 部署令牌 -> 创建部署令牌

gitlab+deploy-token-1
Wt7soWvUeRkHg2f79J1C
(2)创建变量
项目 -> 设置 -> CI/CD -> 变量

2. 部署
// .gitalb-ci.yml
variables:REGISTRY: $CI_REGISTRY/edu-java-demo/edu-java-springMAVEN_OPTS: "-Dmaven.repo.local=.m2"stages:- test- build- package- reviewtest:stage: testimage: harbor.xiodi.cn/tools/openjdk:11.0.6tags:- docker- host20133-dockerscript:- chmod +x ./mvnw && ./mvnw testcache:key: maven-repo-cachepaths:- .m2build:stage: buildimage: harbor.xiodi.cn/tools/openjdk:11.0.6tags:- docker- host20133-dockerscript:- chmod +x ./mvnw && ./mvnw packagecache:key: maven-repo-cachepaths:- .m2artifacts:paths:- target/*.jarexpire_in: 1 weekdocker-package:stage: packageimage: harbor.xiodi.cn/tools/docker:18.09.9services:- docker:18.09-dindtags:- docker- host20133-dockervariables:REGISTRY_VERSION: $CI_COMMIT_SHORT_SHAscript:- export- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY- docker build -t $REGISTRY:$CI_COMMIT_SHORT_SHA -f Dockerfile .- docker push $REGISTRY:$CI_COMMIT_SHORT_SHAdeploy_review:stage: reviewimage: harbor.xiodi.cn/tools/kubectl:1.14.8variables:INGRESS_HOST: ${CI_COMMIT_REF_SLUG}.xiodi.cnREGISTRY_VERSION: $CI_COMMIT_SHORT_SHAtags:- docker- host20133-dockerenvironment:name: review/$CI_COMMIT_REF_NAMEurl: http://${CI_COMMIT_REF_SLUG}.xiodi.cn/helloon_stop: stop_reviewauto_stop_in: 7 dayscript:- 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 -stop_review:stage: reviewimage: harbor.xiodi.cn/tools/kubectl:1.14.8variables:GIT_STRATEGY: nonetags:- docker- host20133-dockerenvironment:name: review/$CI_COMMIT_REF_NAMEaction: stopscript:- kubectl delete --ignore-not-found=true secret regcred- kubectl delete --ignore-not-found=true -f Deploy/kubernetes/ingress-edu-java-spring.yml- kubectl delete --ignore-not-found=true -f Deploy/kubernetes/service-edu-java-spring.yml- kubectl delete --ignore-not-found=true -f Deploy/kubernetes/deployment-edu-java-spring.ymlwhen: manual
