把 Kubernetes 部署的動作也整合到 Jenkins 步驟,串起整個 CI/CD 到 GCP Kubernetes.以下是整個完整步驟,只是在jenkins 設定腳本裡面加了一行指令,就可以完成者個部署工作,非常的方便.
安裝 Kubectl
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
連結
gcloud container clusters get-credentials ithome --zone asia-east1-a --project tidal-surf-219013
修改設定
# 安裝專案環境
bash prepare.sh
# 執行測試
env/bin/py.test --junitxml=pytest_result.xml --cov=ithome_pellok_2018 --cov-report=xml
# 建置 Docker
rm -f ithome_pellok_2018.sqlite
docker build --rm -t ithome_pellok_2018:${BUILD_NUMBER} .
# Doker Image 打標籤
docker tag ithome_pellok_2018:${BUILD_NUMBER} asia.gcr.io/tidal-surf-219013/ithome_pellok_2018:${BUILD_NUMBER}
# 上傳到 google cloud
gcloud docker -- push asia.gcr.io/tidal-surf-219013/ithome_pellok_2018:${BUILD_NUMBER}
# 更新 kubernetes.yaml
kubectl set image deployment/ithome-service-deploy joyi=asia.gcr.io/tidal-surf-219013/ithome_pellok_2018:${BUILD_NUMBER} --record
Jenkins 可以部署到單台 VM,也可以幫我們部署到 Kubernetes,就看我們需要用到的環境是什麼,主要就是自動化這個過程,當然這只是最基礎的流程,還有很多的細節需要一一克服,但是讓我們在每一個動作都盡量自動化,避免人為疏失.