III
DevOps
CI/CD
進入gitlab-runner container
每 register 一次就會自動附加到 config.toml
不要用 GitLab GUI 安裝,它會把 Helm Tiller 和 GitLab Runner 放在 gitlab-managed-apps namespace 底下,這個 K8s 就不能拿來做 deploy。
安裝順序:
官方沒有 expose docker.sock
package 存在 ~/.cache/helm/repository/
我有 expose docker.sock
以 chart 為模板,佈署 release,相應的 K8s resource 就此生成
nameserver 8.8.8.8
跟 search nmsi.pri
gitvepc
為 gitvepc.nmsi.pri
- kubectl edit cm coredns -n kube-system
kubectl get pods -n kube-system -o name | grep coredns | xargs kubectl delete -n kube-system
當對同一個 container 分不同的 dind job 做 docker run
, docker cp
, docker rm
, docker rmi
,有可能會使 job 分散在不同機器上,就會找不到要被操作的 container,所以要 remote access 不同機器上的 Docker daemon。
在 gitlab-runner pod 裡面
在 gitlab-runner container 裡面
因為 gitlab-runner pod 的 values.yml 預設已開啟 9252 port
可以確認 pod 有提供 metric
所以 Prometheus 可以取得 metrics,以下是 PromQL
gitlab_runner_jobs
: 某 gitlab-runner 目前正在執行 job 的數量
gitlab_runner_version_info
: 有哪些 gitlab-runner pod
gitlab_runner_concurrent
: 某 gitlab-runner 允許接到 job 的最大數量