harbor 10.8.0.30 gitlab 10.8.0.30 gitlab-runner 172.16.13.19 master 172.16.13.182.gitlab所需文件准备
.gitlab-ci.yml
stages:
- build
- deploy
build:
stage: build
script:
- chmod a+x build-push.sh
- sh build-push.sh
deploy:
image: roffe/kubectl
stage: deploy
script:
- chmod a+x deploy.sh
- sh deploy.sh
Dockerfile
FROM nginx:latest RUN echo "v1" > /usr/share/nginx/html/index.html CMD ["nginx","-g","daemon off;"]
build-push.sh
#!/bin/bash docker login 10.8.0.30 -u admin -p Harbor12345 docker build -t nginx:v1 . docker tag nginx:v1 10.8.0.30/k8s/nginx:v1 docker push 10.8.0.30/k8s/nginx:v1
deploy.sh
#!/bin/bash kubectl apply -f tmp_deploy/$f --insecure-skip-tls-verify=true --server=172.16.13.18:6443 --token=xxxx3.gitlab-runner配置文件修改和k8s-master权限授予
#gitlab-runner主机修改 vim /etc/gitlab-runner/config.toml volumes = ["/cache", "/tmp/builds:/tmp/builds", "/var/run/docker.sock:/var/run/docker.sock", "/root/.docker/:/root/.docker/"] #k8s集群master设置 kubectl create clusterrolebinding serviceaccounts-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccounts4.gitlab-ci/cd工作流程
1.代码持续集成到gitlab 2.触发流水线自动部署,根据.gitlab-ci.yml定义内容工作 3.gitlab-runner接收到任务进行一系列工作 4.流程 代码集成---触发gitlab-ci/cd---gitlab-runner接收任务并工作---镜像编译---推送镜像至harbor---k8s替换镜像版本完成更新



