代码之家  ›  专栏  ›  技术社区  ›  Vasily

Kubernetes执行器上的Gitlab作业未显示docker守护进程

  •  0
  • Vasily  · 技术社区  · 1 年前

    我有一个基于VK Cloud的托管k8s集群。

    1. 我已经通过Helm为他安装了gitlab代理:
    helm repo add gitlab https://charts.gitlab.io
    helm repo update
    helm upgrade --install icebreakers-router-k8s-agent gitlab/gitlab-agent \
    --namespace gitlab-agent-icebreakers-router-k8s-agent \
    --create-namespace \
    --set image.tag=v17.1.0-rc5 \
    --set config.token=*TOKEN* \
    --set config.kasAddress=wss://kas.gitlab.com
    

    在存储库的根目录中创建了空的Gitlab代理配置: .gitlab/agents/icebreakers-router-k8s-agent/config.yaml

    1. Gitlab runner安装如下:

    helm install --namespace gitlab-runner gitlab-runner -f values.yaml gitlab/gitlab-runner

    values.yaml:

    gitlabUrl: https://gitlab.com
    runnerRegistrationToken: *TOKEN*
    rbac:
      serviceAccountName: gitlab-admin
    runners:
      config: |
        [[runners]]
          [runners.kubernetes]
            service_account = "gitlab-admin"
            namespace = "gitlab-runner"
            image = "ubuntu:20.04"
            privileged = true
      tags: "icebreakers-router-gitlab-runner"
      serviceAccountName: gitlab-admin
      cloneUrl: https://gitlab.com/
    

    kubectl apply -f 1-gitlab-runner-service-account.yaml

    1-gitlab-runner-service-account.yaml:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: gitlab-admin
      namespace: gitlab-runner
    
    ---
    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      namespace: gitlab-runner
      name: gitlab-admin
    rules:
      - apiGroups: ['']
        resources: ['*']
        verbs: ['*']
    
    ---
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: gitlab-admin
      namespace: gitlab-runner
    subjects:
      - kind: ServiceAccount
        name: gitlab-admin
        namespace: gitlab-runner
    roleRef:
      kind: Role
      name: gitlab-admin
      apiGroup: rbac.authorization.k8s.io
    
    1. Gitlab作业基于 docs :
    build-and-release-docker-image:
      stage: release
      image: docker:26.1.3
      services:
        - docker:26.1.3-dind
      variables:
        GIT_STRATEGY: none
        DOCKER_HOST: tcp://docker:2375
        DOCKER_TLS_CERTDIR: ""
      needs:
        - job: build-jar
          artifacts: true
      script:
        - ls
        - docker build .
    

    我尝试创建Docker In Docker Job以构建Docker镜像,但没有成功。

    作为开始工作的结果,我得到:

    $ docker build .
    ERROR: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?
    

    我做错了什么?

    0 回复  |  直到 1 年前
        1
  •  0
  •   Vasily    1 年前

    我通过更改图像版本修复了它:

    image: docker:18.09.7
    services:
      - docker:18.09.7-dind