kubernetes 部署文件 - gitlab-runner

本文详细介绍了如何在Kubernetes集群中部署GitLab Runner,包括ServiceAccount、ClusterRoleBinding、ConfigMap和Deployment的配置,以实现CI/CD流程自动化。
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: gitlab-runner
  name: gitlab-runner
  namespace: gitlab

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: gitlab-runner
  namespace: gitlab
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: gitlab-runner
  namespace: gitlab

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: gitlab-runner
  namespace: gitlab
data:
  config.toml: |
    concurrent = 10
    check_interval = 0

    [[runners]]
    name = "Kubernetes global runner"
    url = "https://git.huoys.com/"
    token = "1249303cd023150a51c66e93cdcfa5"
    executor = "kubernetes"
    [runners.cache]
    [runners.kubernetes]
        image = "alpine"
        privileged = false
        namespace = "gitlab"
        namespace_overwrite_allowed = ""
        bearer_token_overwrite_allowed = false
        service_account = "gitlab-runner"
        service_account_overwrite_allowed = ""
        pod_annotations_overwrite_allowed = ""
        [[runners.kubernetes.volumes.host_path]]
            name = "hosts"
            mount_path = "/etc/hosts"
            read_only = true
            host_path = "/etc/hosts"
  git.huoys.com.crt: |    
    -----BEGIN CERTIFICATE-----
    MIICXTCCAcYCCQCYHOYqK1PRyzANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJV
    UzENMAsGA1UECAwETWFyczETMBEGA1UEBwwKaVRyYW5zd2FycDETMBEGA1UECgwK
    aVRyYW5zd2FycDETMBEGA1UECwwKaVRyYW5zd2FycDEWMBQGA1UEAwwNZ2l0Lmh1
    b3lzLmNvbTAeFw0xODA4MDYxMDE2NDlaFw0yODA4MDMxMDE2NDlaMHMxCzAJBgNV
    BAYTAlVTMQ0wCwYDVQQIDARNYXJzMRMwEQYDVQQHDAppVHJhbnN3YXJwMRMwEQYD
    VQQKDAppVHJhbnN3YXJwMRMwEQYDVQQLDAppVHJhbnN3YXJwMRYwFAYDVQQDDA1n
    aXQuaHVveXMuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWYwIWGwJk
    ljXfy8oWhYkmWshAzZBj8WTDEErfQhv8ADKIhiUhUdhhiqO5dMY78jNgZsaBVwXD
    7YfCVGqw91ZyiivuED9RfCADmFNLtpyVnYtlzXf36OQxEHniOXYMzLsEt+niacoB
    J8dwer0VwjcP7V9qh+jMbkxNMFhJCi4nswIDAQABMA0GCSqGSIb3DQEBCwUAA4GB
    AHxEqAHfz2u+wH9Id8kmFvbYaZm1uHp9NO4fWDiESL9tEfkGMwrxPPdJh2YUpRm7
    XHFtkKVqf/JG4mWrotdVF0/XdsE/lS5pVul0anlV32hfvyhEytQk1pSq0ndeoVGm
    8+7I2EUv5NMQDInNPfa4qDn/31hgmoNRG+WZ/tLLtvqE
    -----END CERTIFICATE-----

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: gitlab-runner
  namespace: gitlab
spec:
  replicas: 1
  selector:
    matchLabels:
      name: gitlab-runner
  template:
    metadata:
      labels:
        name: gitlab-runner
    spec:
      hostAliases:
        - ip: 172.13.0.51
          hostnames:
            - git.huoys.com
            - apiserver.k8s.com
      containers:
      - args:
        - run
        image: gitlab/gitlab-runner:latest
        name: gitlab-runner
        volumeMounts:
        - mountPath: /etc/gitlab-runner
          name: config
        - mountPath: /etc/ssl/certs/ca-certificates.crt
          name: certs
          subPath: ca-certificates.crt
      restartPolicy: Always
      serviceAccountName: gitlab-runner
      volumes:
      - name: config
        configMap:
          name: gitlab-runner
          items:
           - key: config.toml
             path: config.toml
      - name: certs
        configMap:
          name: gitlab-runner
          items:
           - key: git.huoys.com.crt
             path: ca-certificates.crt
Kubernetes 环境中部署 GitLab Runner 通常使用 Helm Chart 进行安装,这是一种高效且易于管理的方法。以下是完整的部署步骤: ### 添加 GitLab Helm 仓库 首先确保你的环境中已经安装了 Helm 并配置好了 Kubernetes 集群的访问权限。然后添加 GitLab 提供的官方 Helm 仓库: ```bash helm repo add gitlab https://charts.gitlab.io/ helm repo update ``` ### 安装 GitLab Runner 使用 Helm 安装 GitLab Runner 时需要提供 GitLab 实例的 URL 和注册令牌。可以通过以下命令进行安装: ```bash helm install gitlab-runner -n gitlab-system --create-namespace \ --set gitlabUrl="https://gitlab.example.com/" \ --set runnerRegistrationToken="your-registration-token" \ gitlab/gitlab-runner ``` 其中 `gitlabUrl` 是 GitLab 实例的地址,`runnerRegistrationToken` 是用于注册 Runner 的令牌,可以在 GitLab 项目的 **Settings > CI/CD > Runners** 页面找到。 ### 配置 Runner 安装完成后,GitLab Runner 将自动注册到指定的 GitLab 实例,并开始监听新的 CI/CD 任务。可以通过修改 Helm values 文件来进一步自定义 Runner 的行为,例如设置并发数、Runner 的标签等。 ### 使用 Runner 一旦 Runner 成功部署并注册,就可以在 `.gitlab-ci.yml` 文件中使用 `tags` 指定 Runner 的标签来选择特定的 Runner 执行任务 [^4]。 ### 清理资源 如果需要卸载 GitLab Runner,可以使用以下命令: ```bash helm delete gitlab-runner -n gitlab-system ``` ### 示例 `.gitlab-ci.yml` 配置 以下是一个简单的 `.gitlab-ci.yml` 配置示例,展示了如何使用特定标签的 Runner 来执行任务: ```yaml stages: - build build_job: stage: build tags: - hello-vue - docker script: - echo "Building the application..." ``` 通过上述步骤,你可以在 Kubernetes 集群上成功部署 GitLab Runner,并利用其强大的功能来支持 CI/CD 流程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值