Day 24: GitLab CI/CD 基本概念與工作流程
Day 25: GitLab Runners 配置與使用
Day 26: 使用 GitLab CI/CD 進行原始碼掃描及套件掃描
Day 27: 使用 GitLab CI/CD 進行自動化測試
Day 28: 如何在 GitLab CI/CD 中實現持續部署 (CD)
Day 29: GitLab CI/CD 與 Kubernetes 的集成實踐
因為免費方案之硬體需求關係,此章節會以GCP作為雲端平台來操作。
GitLab CI/CD 與 Kubernetes 的集成實踐涉及將 GitLab 用作 CI/CD 平台,並在 Kubernetes 集群中自動部署應用程序。這可以通過配置 GitLab 的 .gitlab-ci.yml 文件,利用 Kubernetes 部署應用容器化。GitLab 提供 Kubernetes 集群集成,可以自動更新應用、管理密鑰、配置服務和監控部署狀態。此集成實現了持續集成和持續部署(CI/CD)的自動化,提升了開發效率和運維靈活性。
~/.kube/config 文件是 Kubernetes 的配置文件,用於管理和連接 Kubernetes 集群。它包含集群的詳細信息、用戶憑證、命名空間以及集群的上下文設定。通過此文件,kubectl 命令行工具可以與多個集群進行通信,並根據需要切換不同的集群和上下文。這個配置文件支持安全訪問集群和方便的集群管理,是與 Kubernetes 交互的重要組件。
需要註冊一台新的runner來連接你已有的k8s集群
剛好來回憶Day25的配置步驟
#拉取映像檔(做一次就好)
docker pull gitlab/gitlab-runner:ubuntu-v16.2.0
#運行gitlab-runner容器
docker run -itd --net=host --privileged=true --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker gitlab/gitlab-runner:ubuntu-v16.2.0
網頁訪問已經架設好的gitlab
在「群組」的層級底下建立一台gitlab runner
路徑:Build > Runners > New group runner > 標籤命名(待會會用到) > Create
記下這個步驟的指令及token,待會會用到
回到gitlab runner容器內
docker ps
docker exec -it <container id>
安裝kubectl
curl -LO https://dl.k8s.io/release/v1.26.3/bin/linux/amd64/kubectl
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
驗證是否安裝完成
kubectl version --client --output=yaml
至master主機將config文件的內容複製下來,或scp到runner機器/容器內
路徑:/home/使用者名稱/.kube/config
切換用戶,用來關聯k8s
su gitlab-runner
建立資料夾,並將config文件手動貼入(或剛才說的scp)
mkdir /home/gitlab-runner/.kube
nano /home/gitlab-runner/.kube/config
這個時候就能驗證是否能獲取k8s集群訊息
kubectl get nodes
再來一樣註冊runner機器
只是需要先切換回root使用者
su root
接著註冊
gitlab-runner register
根據提示依據輸入gitlab位址、token、runner命名、類型
不管是本地k8s集群還是aws eks
關聯k8s的要點在於config文件的步驟