哈囉,大家好,歡迎來到我們 CI/CD 的第二天!
在昨天的 Day 18 中,我們介紹了 GitLab CI/CD 的核心觀念,知道了整個自動化流程是透過一份 .gitlab-ci.yml
設定檔來描述流程,而實際執行這些流程的就是 GitLab Runner。
今天,我們就要動手做一件非常關鍵的事:在 Kubernetes (K8s) 叢集裡安裝並設定 GitLab Runner。這個 Runner 會是我們未來跑自動化工作的主要執行者。
你可能會想:「我可以直接在某台 VM 上裝 GitLab Runner,為什麼還要搞 Kubernetes?」
答案是:這樣做可以帶來更好的彈性、效率和隔離性。
當你把 Runner 裝在 K8s 裡,而且使用 Kubernetes Executor 模式,它的運作方式會變得很聰明:
這樣的方式帶來不少好處:
在 K8s 裡安裝 GitLab Runner,最推薦的方式是透過 官方 Helm Chart。
Runner 需要一個 Token 才能註冊到 GitLab 專案中。
Settings > CI/CD
values.yaml
設定檔Helm 會透過這個檔案來設定 GitLab Runner 的各項參數。
建立一個名為 gitlab-runner-values.yaml
的檔案:
# gitlab-runner-values.yaml
# GitLab 實例 URL
gitlabUrl: https://gitlab.com/
# 剛剛複製的註冊權杖
runnerRegistrationToken: "YOUR_REGISTRATION_TOKEN"
# RBAC 權限設定
rbac:
create: true
# Runner 主要設定
runners:
tags: "kubernetes,ota-project"
executor: kubernetes
kubernetes:
namespace: project-space
helper_image: "gitlab/gitlab-runner-helper:alpine-x86_64-latest"
helm repo add gitlab https://charts.gitlab.com
helm repo update
helm install gitlab-runner gitlab/gitlab-runner \
-n gitlab-runner-system \
--create-namespace \
-f gitlab-runner-values.yaml
gitlab-runner
是這次安裝的名稱gitlab/gitlab-runner
是 Helm Chart 名稱n gitlab-runner-system
:將它安裝到一個專屬的 Namespace 中-create-namespace
:如果 Namespace 不存在,會自動建立f
載入我們剛剛寫的設定檔kubectl get pods -n gitlab-runner-system
你應該會看到類似 gitlab-runner-xxxxxxxxxx-xxxxx
的 Pod,狀態是 Running
。
Settings > CI/CD > Runners
完成了把 GitLab Runner 安裝到 Kubernetes 上!
明天我們會進一步學習怎麼寫 .gitlab-ci.yml
,讓這個 Runner 開始真正執行自動化工作流程。明天見!