gitlab-ci中cicd+helm实现devops自动化部署到k8s
docker-compose搭建gitlab
1、编写compose.yaml
version: '3.8'services:gitlab:image: gitlab/gitlab-ee:latest # 或用 gitlab/gitlab-ce:latest,根据你想用 EE / CE 版本container_name: gitlabrestart: alwayshostname: "gitlab.abc.cn" # 你要访问的域名environment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://gitlab.abc.cn'# 以下可根据需要启用gitlab_rails['gitlab_shell_ssh_port'] = 22# 你还可以在这里写其他 gitlab.rb 的配置项ports:- "80:80"- "443:443"- "8022:22"volumes:- ./config:/etc/gitlab- ./logs:/var/log/gitlab- ./data:/var/opt/gitlabshm_size: '256m'networks:default:external:name: gitlab-net
2、启动gitlab
docker create network gitlab-net
docker compose up -d
3、等gitlab初始化完毕后通过日志获取gitlab初始密码
启动gitlab-runner容器
启动命令
docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
登录gitlab后创建服务端runners
1、选择项目切换到Runners

2、创建成功后可以看到创建客户端的时候需要的gitlab域名和token

3、看到创建好的服务端Runners

4、整体创建过程如下

创建客户端Runners
1、命令行创建过程

2、查看创建好的配置文件内容
cat /etc/gitlab-runner/config.toml
[[runners]]name = "cloud"url = "http://gitlab.abc.cn"id = 5token = "glrt-54IxrjmiUe03v2nVEK-XXXXXXXXXX"token_obtained_at = 2025-10-31T03:26:08Ztoken_expires_at = 0001-01-01T00:00:00Zexecutor = "docker"[runners.cache]MaxUploadedArchiveSize = 0[runners.cache.s3][runners.cache.gcs][runners.cache.azure][runners.docker]tls_verify = falseimage = "alpine:latest"privileged = falsedisable_entrypoint_overwrite = falseoom_kill_disable = falsedisable_cache = falsevolumes = ["/cache"]shm_size = 0network_mtu = 0
3、在gitlab上面启动Runners
启动位置

启动后如下

