准备
已经安装运行一个 Kubernetes
集群。
安装Helm Client
本来想用一键安装脚本安装的,无奈网络太慢
所以先下载 helm 的压缩包
1 | wget https://get.helm.sh/helm-v2.14.0-linux-amd64.tar.gz |
安装 Tiller
Tiller是 Helm 的服务器部分,通常在您的
Kubernetes
集群内部运行。但是对于开发,它也可以在本地运行,并配置为与远程Kubernetes
集群通信。
执行下面的命令可以安装tiller
1 | helm init |
repo 可以是 https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
指定更多的参数
--tiller-image
: 指定 tiller 的镜像,因为默认是取的google镜像仓库,需要翻墙,可以去 阿里云镜像仓库找找
(https://cr.console.aliyun.com/cn-hangzhou/instances/repositories)--tiller-namespace
: 指定安装到哪个 namespace--kube-context
: 制定安装到哪个K8S集群--service-account
: 指定 tiller 的 ServiceAccount
PS:如果直接 helm init安装的,可以看到镜像拉不下来,可以去阿里镜像仓库找对应的版本拉到对应的运行节点上,然后给这个镜像重新 tag 一下。
安装完可以使用下面的命令看到 helm 的版本。
1 | [root@node9 gitlab-runner]# helm version |
Helm 安装 Gitlab Runner
先使用下面的命令给 tiller 授个权
1 | kubectl create serviceaccount --namespace kube-system tiller |
配置 chart 需要的配置文件
values.yml
1 | ## The GitLab Server URL (with protocol) that want to register the runner against |
gitlabUrl
: 配置gitlab的地址runnerRegistrationToken
: 项目的token,Settings -> CI/CD -> Runners 里面能看到concurrent
: 部署在Kubernetes
上的单个GitLab Runner
能够通过自动启动其他 Runner pod 来并行执行多个作业。并发设置控制一次允许的最大pod数,默认为10rbac.create
: 配置为false自动创建runners.image
: job 默认镜像runners.privileged
: 需要在 job 里面用docker
环境就配置为 true 吧。
使用如下命令添加 Helm
的 Chart
仓库
1 | helm repo add gitlab https://charts.gitlab.io |
先创建 gitlab 这个名称空间
1 | kubectl create namespace gitlab |
使用 Helm Chart 安装 GitLab Runner
1 | helm install --namespace gitlab --name gitlab-runner -f values.yml gitlab/gitlab-runner |
安装完成之后可以在 Settings->CI/CD->Runner 看到新建的 Runner,可以在当前页面编辑 Runner 给这个 Runner 打上一些 tag。
使用 Helm Chart 更新 GitLab Runner
先使用如下命令查看 release name
1 | [root@node9 ~]# helm list |
1 | helm upgrade --namespace gitlab -f values.yml gitlab gitlab/gitlab-runner |
使用 Helm Chart 删除 GitLab Runner
1 | helm delete --namespace <NAMESPACE> <RELEASE-NAME> |