1.使用場景html
CICD是最近幾年比較火的技術,顧名思義就是持續集成和持續部署。nginx
之前的老技術,好比svn+jenkins這種,jenkins的配置多數仍是依賴於負責維護CI的人,不少人不熟悉jenkins怎麼配置,每個步驟應該怎麼編譯和測試,通常都由CI的人來定義。git
而CICD,其實能夠使用jenkinsfile,就想gitlab的gitlab-ci.yaml文件,把CICD的流程控制和步驟也做爲開發的一部分,由開發去維護。而且能夠很快的部署到多個環境。docker
2. 實踐svn
使用gitlab的CICD流程,使用nginx爲例子。搭建一個pipe。一旦提交代碼,自動部署nginx到k8s的集羣中。gitlab
使用到的技術有: docker,k8s,helm,gitlab-runner,nginx測試
2. gitlab的CICD搭建ui
步驟一:htm
搭建k8s集羣環境,能夠使用minikube或者kubeadm快速的搭建起來k8s集羣。ip
步驟: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
步驟二:
安裝helm
https://zhuanlan.zhihu.com/p/33813367
步驟三:
安裝gitlab-runner而且註冊
步驟四:
在gitlab上面新建project,project下面應該有這幾個文件
1. index.html(docker image裏面替換了index.html)
2. Dokcerfile(基於nginx的image,替換了index.html)
3. helm chart (將docker images包含進來,建立k8s的deployment和service)
4. gitlab-ci.yaml(定義整個CICD的流程,第一步build docker images,publish to dockerhub, 第二步pakage helm chart, 第三步deploy helm chart)