kubernetes基于helm部署gitlab-runner

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配置,提供本地域名解析。

yaml 复制代码
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

bash 复制代码
kubectl -n kube-system rollout restart deployment.apps/coredns

2、导出gitlab自签名证书

bash 复制代码
kubectl -n gitlab get secret gitlab-gitlab-tls --template='{{ index .data "tls.crt" }}' | base64 -d > gitlab.crt

3、基于自签名证书创建secrets

bash 复制代码
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 仓库

basg 复制代码
helm repo add gitlab https://charts.gitlab.io

使用helm部署gitlab-runner

bash 复制代码
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

bash 复制代码
root@ubuntu:~# kubectl -n gitlab-runner get pods 
NAME                             READY   STATUS    RESTARTS   AGE
gitlab-runner-5db97476f9-2mnsz   1/1     Running   0          3h30m

登陆UI确认runner注册成功

相关推荐
闲云自留地2 小时前
Containerd 是什么?架构、插件与安装实践一次讲清
容器
运维开发王义杰3 小时前
跨项目直连数据库:是架构反模式,还是现实的工程妥协?
云原生
闲云野鹤在人间4 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
闲云自留地5 小时前
告别敲命令!DockerUI 与 Portainer 可视化容器管理实战
docker·容器
wdfk_prog5 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
程序猿阿越6 小时前
containerd如何创建Pod
后端·kubernetes·源码阅读
安易算力9 小时前
昇腾生态开发深度实践:CANN算子库架构解析与MindSpore模型优化
网络·容器·架构·kubernetes·vllm
闲云自留地9 小时前
不用 docker!containerd 镜像 crctl 命令一把梭
容器
周先生FullStack10 小时前
Mac + 容器本地 MySQL/Redis 环境搭建与网络原理实战
java·spring boot·微服务·容器·架构·个人开发
Dovis(誓平步青云)11 小时前
突破 32 位瓶颈:64 位 XID 如何化解事务号回卷危机
运维·服务器·人工智能·docker·容器