0 kubernetes gitlab-ci-runner kaniko
我面临着一个非常奇怪的问题。
首先我的设置:
我有一个私有的 Gitlab 服务器,它使用 Kubernetes 上的 Gitlab CI Runners 来构建 Docker 镜像。为此,我使用 Kaniko 图像。Runners 由 Gitlab 本身通过内置的 Kubernetes 管理进行配置。所有这些都在 PFSense 服务器后面运行。
现在我的问题是:
有时 Kaniko Pod 无法解析 GitLab 服务器的主机名。这会导致 git pull 失败,从而导致构建失败。我认为失败的几率为 60%,这对我们来说太高了。重试构建几次后,它将运行没有任何问题。
运行 Gitlab CI 的 Kubernetes 集群在 CentOS 7 上设置。SELinux 和 FirewallD 被禁用。所有主机都可以解析 GitLab 服务器。它也与导致问题的特定主机服务器无关。我发现它在所有 5 台服务器(包括 Manager 服务器)上都失败了。而且我还没有看到这个问题出现在其他 Pod 中。但集群中的其他部署实际上并不通过 DNS 进行连接。我确信 Runner 能够访问 DNS,因为它正在从 gcr.io 提取 Kaniko 映像。
有没有人见过这个问题或知道解决方法?
这是我的 CI 配置:
build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- echo $REGISTRY_AUTH > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $REGISTRY_URL/$REGISTRY_IMAGE:$CI_JOB_ID
only:
- master
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
Initialized empty Git repository in /builds/MYPROJECT/.git/
Fetching changes...
Created fresh repository.
fatal: unable to access 'https://gitlab-ci-token:[MASKED]@git.mydomain.com/MYPROJECT.git/': Could not resolve host: git.mydomain.com
Run Code Online (Sandbox Code Playgroud)
小智 5
几天来我们遇到了同样的问题。我们尝试更改 CoreDNS 配置、将运行器移动到不同的 k8s 集群等。最后今天我检查了我的个人跑步者,发现我使用的是不同的版本。gitlab/gitlab-runner:alpine-v12.3.0
当我的时候,集群里的跑步者有gitlab/gitlab-runner:alpine-v12.0.1
。我们添加了线
image: gitlab/gitlab-runner:alpine-v12.1.0
Run Code Online (Sandbox Code Playgroud)
这values.yaml
为我们解决了问题
归档时间: |
|
查看次数: |
8218 次 |
最近记录: |