helm部署gitlab-runner

helm部署gitlab-runner。chart最新版本:0.21.1


  • namespace:

public-service-ns.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: public-service
kubectl apply -f public-service-ns.yaml
  • 查看注册token:

管理中心 查看注册runner的 urltoken,注册完成后就是全局的runner,也可以创建项目后单独注册runner。

在这里插入图片描述

  • 配置:
helm repo add gitlab https://charts.gitlab.io/

helm repo update

helm pull gitlab/gitlab-runner

tar xf gitlab-runner-0.21.1.tgz

vim gitlab-runner/values.yaml               #更改
gitlabUrl: http://gitlab.lzxlinux.com/              #url

runnerRegistrationToken: "KQj8zJc3RCI0K8wKF3ObroOPMFQT281CkKeHUUV77fro8auh7ZzQBL4PVVVne2EU"             #token

concurrent: 10              #最大并发

rbac:
  create: true
  resources: ["pods", "pods/exec", "secrets"]
  verbs: ["get", "list", "watch", "create", "patch", "delete"]
  
metrics:
  enabled: false

runners:
  image: ubuntu:16.04
  imagePullPolicy: "if-not-present"
  locked: false
  tags: "k8s-runner"                #runner的标签
  runUntagged: false
  protected: false
  privileged: false             #特权模式
  namespace: public-service

  builds:
    cpuLimit: 200m
    cpuLimitOverwriteMaxAllowed: 400m
    memoryLimit: 256Mi
    memoryLimitOverwriteMaxAllowed: 512Mi
    cpuRequests: 100m
    cpuRequestsOverwriteMaxAllowed: 200m
    memoryRequests: 128Mi
    memoryRequestsOverwriteMaxAllowed: 256Mi

  services:
    cpuLimit: 200m
    memoryLimit: 256Mi
    cpuRequests: 100m
    memoryRequests: 128Mi

  helpers:
    cpuLimit: 200m
    memoryLimit: 256Mi
    cpuRequests: 100m
    memoryRequests: 128Mi
    
securityContext:
  fsGroup: 0
  runAsUser: 0
  
resources:
  limits:
    memory: 256Mi
    cpu: 200m
  requests:
    memory: 128Mi
    cpu: 100m
    
hostAliases:
  - ip: "192.168.30.129"
    hostnames:
    - "gitlab.lzxlinux.com"

渲染模板,查看上面修改是否存在问题:

helm template --dry-run k8s-runner gitlab-runner/ -n public-service
  • 部署:
helm install k8s-runner gitlab-runner/ -n public-service

helm ls -n public-service

NAME      	NAMESPACE     	REVISION	UPDATED                                	STATUS  	CHART               	APP VERSION
k8s-runner	public-service	1       	2020-10-15 17:55:24.426491226 +0800 CST	deployed	gitlab-runner-0.21.1	13.4.1
kubectl get pod -n public-service | grep gitlab-runner

k8s-runner-gitlab-runner-55ddb846bd-g78ch       1/1     Running     0          65s
  • 访问:

在这里插入图片描述

可以看到gitlab-runner注册成功,标签是 k8s-runner

  • 演示gitlab runner工作:

gitlab上新建一个组 test,在 test 组中新建一个项目 helloworld ,然后项目中新建一个 README.md 文件。

在这里插入图片描述

再新建一个 .gitlab-ci.yml 文件,

# 定义 stages
stages:
  - test
  - build

# 定义 job
job1:
  stage: test
  script:
    - echo "I am job1"
    - echo "I am in test stage"
    - hostname
  tags:
    - k8s-runner

# 定义 job
job2:
  stage: build
  script:
    - echo "I am job2"
    - echo "I am in build stage"
    - hostname
  tags:
    - k8s-runner

在这里插入图片描述

打开 CI/CD流水线,可以看到刚刚的提交已经成功完成,

在这里插入图片描述

提示runner无法解析域名,对coredns添加dns解析,

kubectl edit cm -n kube-system coredns              #修改
apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        hosts {
            192.168.30.129   gitlab.lzxlinux.com                #添加dns解析
            fallthrough
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }

保存退出,然后重试流水线,

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

gitlab runner对每个job启动一个pod,job完成后自动销毁pod,gitlab runner工作正常。

helm部署gitlab-runner完成。已存放至个人github:kubernetes


猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/109260287