kubernetes基于helm部署gitlab-runner
这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-runner。
先决条件:
- 已运行的 Kubernetes 集群
- 已运行的 gitlab 实例
项目地址:https://gitlab.com/gitlab-org/charts/gitlab-runner
官方文档:https://docs.gitlab.com/runner/install/kubernetes.html
创建gitlab-runner实例
1、登陆UI创建新的runner
选择Your work–> Admin Area
2、选择CI/CD–>Runners–> New instance runner
3、配置runner信息
4、点击Create runner
5、获取runner token
前置配置
说明:gitlab实例使用自签名证书并且使用本地域名时,需执行以下配置。
1、配置gitlab url在pod中的域名解析
gitlab-runner pod启用时需要从pod内部使用 gitlab 外部域名https://gitlab.example.com
注册到gitlab,修改coredns配置,提供本地域名解析。
root@ubuntu:~# kubectl -n kube-system edit cm coredns
apiVersion: v1
data:
Corefile: |
.:53 {
errors
hosts {
192.168.72.210 gitlab.example.com
fallthrough
}
......
}
重启coredns pods
kubectl -n kube-system rollout restart deployment.apps/coredns
2、导出gitlab自签名证书
kubectl -n gitlab get secret gitlab-gitlab-tls --template='{{ index .data "tls.crt" }}' | base64 -d > gitlab.crt
3、基于自签名证书创建secrets
kubectl create ns gitlab-runner
kubectl -n gitlab-runner create secret generic gitlab-runner-certs \
--from-file=gitlab.example.com.crt=gitlab.crt \
--from-file=registry.example.com.crt=gitlab.crt \
--from-file=minio.example.com.crt=gitlab.crt
部署gitlab-runner
添加gitlab helm 仓库
helm repo add gitlab https://charts.gitlab.io
使用helm部署gitlab-runner
helm install gitlab-runner \
--namespace=gitlab-runner \
--create-namespace \
--set gitlabUrl=https://gitlab.example.com \
--set runnerToken=glrt-p3LfPnBwy6pdVjnj1Mmx \
--set certsSecretName=gitlab-runner-certs \
--set rbac.create=true \
--set rbac.clusterWideAccess=true \
gitlab/gitlab-runner
查看运行的gitlab-runner pods
root@ubuntu:~# kubectl -n gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
gitlab-runner-5db97476f9-2mnsz 1/1 Running 0 3h30m
登陆UI确认runner注册成功