整体架构:
代码仓库:gitlab的部署
镜像仓库:harbor的部署
容器编排系统:k8s
容器服务管理工具:rancher导入本地k8s集群
上面组件和服务部署,前面的博客都有介绍到,这里不在赘述。镜像推送到本地仓库后,下一步就是自动部署了。代码如下
deploy_sha:
stage: deploy_sha
tags:
- deploy
only:
- master
script: |
set -e -o pipefail
echo /home/.kube/$SERVICE_NAME.yml
echo $SERVICE_NAME
echo $CI_COMMIT_SHA
sed -i 's/- image.*/- image: 172.16.xx.xx:85\/testproject\/'$SERVICE_NAME':'$CI_COMMIT_SHA'/' /home/.kube/$SERVICE_NAME.yml
kubectl --kubeconfig=/home/.kube/kube_config_cluster.yml apply -f /home/.kube/$SERVICE_NAME.yml