gitlab runner pod 没有 docker.sock

问题描述 投票:0回答:1

最近我在我的 kubernetes 中部署了带有 helm 的 gitlab runner。问题是我基于 docker:dind 创建了一个 docker 镜像,其中包含一些 maven 包,当 gitlab 根据我的镜像运行

runner
pod 时,该 pod 没有
docker.sock
。我不知道问题出在哪里? 我为跑步者使用了下图:

image: <my private-registry>/dind-java17-new:17

这是我在

values.yml
gitlab runner 中的运行器配置:

runners:
  # runner configuration, where the multi line strings is evaluated as
  # template so you can specify helm values inside of it.
  #
  # tpl: https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function
  # runner configuration: https://docs.gitlab.com/runner/configuration/advanced-configuration.html
  config: |
    [[runners]]
      executor = "kubernetes"
    [runners.kubernetes]
      privileged = true
      helper_image = "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-782e15da"

我在我的

.gitlab-ci.yml
中尝试了以下解决方案,但它不起作用:

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: ""
services:
  - name: <my private-registry>/dind-java17-new:17
    entrypoint: ["env", "-u", "DOCKER_HOST"]
    command: ["dockerd-entrypoint.sh"]

我收到了这个错误:

error during connect: Get "http://docker:2375/v1.24/version": dial tcp: lookup docker on 169.254.25.10:53: server misbehaving

很高兴听到任何解决方案!

kubernetes gitlab gitlab-ci-runner
1个回答
0
投票

进行这样的远程诊断总是很困难,但当我查看您的案例时,我首先会确认权限是否正确分配给了跑步者 Pod。检查

values.yml
配置中的特权设置。您的值文件中似乎有“错误的缩进”。与这里相比https://collabnix.com/install-and-configure-gitlab-runner-on-kubernetes-using-helm/ runners: config: | [[runners]] executor = "kubernetes" [runners.kubernetes] privileged = true

由于您使用的是 DinD 设置,GitLab Runner pod 应该能够访问 Kubernetes pod 内的 Docker 套接字。确保您已将 Docker 套接字正确安装到 Runner Pod 中。您可以将volumeMounts部分添加到values.yml中的运行器配置中:

runners: config: | [[runners]] executor = "kubernetes" [runners.kubernetes] privileged = true helper_image = "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-782e15da" [runners.kubernetes.volumes] - name: docker-socket hostPath: path: /var/run/docker.sock [runners.kubernetes.volume_mounts] - name: docker-socket mountPath: /var/run/docker.sock

如果还是不行请回复。

快乐编码!

© www.soinside.com 2019 - 2024. All rights reserved.