kubernetes/docker 上的 gitlab:管道失败:清理 configmap 时出错:资源名称可能不为空

Posted

技术标签:

【中文标题】kubernetes/docker 上的 gitlab:管道失败:清理 configmap 时出错:资源名称可能不为空【英文标题】:gitlab on kubernetes/docker: pipeline failing: Error cleaning up configmap: resource name may not be empty 【发布时间】:2021-11-22 20:54:45 【问题描述】:

我们在docker下运行gitlab-ee-12.10.12.0,使用kubernetes管理gitlab-runner

几天前突然间,我所有项目中的所有管道都停止了工作。除了我推送了一些代码之外,什么都没有改变。然而,所有项目(即使是那些没有 repo 更改的项目)都失败了。我查看了系统中任何地方都能找到的所有证书,它们都很好,所以它不是证书到期。磁盘空间是 45%,所以不是这样。没有人登录服务器。没有人触摸任何管理屏幕。一次代码推送成功触发了管道,下一次没有。我看过一切。我已经更新了 gitlab 和 gitlab-runner 的 docker 镜像。我已经删除了可以在命名空间中找到的所有 kubernetes pod,并让它们重新启动(我解决 k8s 问题的首选方法 :-))。

每个项目中运行的每个管道现在都这样说:

Running with gitlab-runner 14.3.2 (e0218c92)
   on Kubernetes Runner vXpkH225
Preparing the "kubernetes" executor
00:00
 Using Kubernetes namespace: gitlab
 Using Kubernetes executor with image lxnsok01.wg.dir.telstra.com:9000/broadworks-build:latest ...
 Using attach strategy to execute scripts...
Preparing environment
00:00
 ERROR: Error cleaning up configmap: resource name may not be empty
 ERROR: Job failed (system failure): prepare environment: setting up build pod: error setting ownerReferences: configmaps "runner-vxpkh225-project-47-concurrent-0-scripts9ds4c" is forbidden: User "system:serviceaccount:gitlab:gitlab" cannot update resource "configmaps" in API group "" in the namespace "gitlab". Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information

该 URL 讨论了包含不良内容的 bash 注销脚本。但什么都没有改变。至少我们没有改变任何东西。 我认为暗示用户没有权限的第二个错误是不正确的。似乎只是在说用户做不到。主要错误是关于 configmaps 清理的前一个错误。同样,没有任何服务帐户、角色、角色绑定等发生任何变化。

所以我正在尝试找出可能导致该错误的原因。这是什么意思?什么资源名是空的?我在哪里可以找到?

我检查了“docker container logs”的输出,它准确地说明了上面的错误。不多也不少。

我唯一能想到的可能是 14.3.2 的 gitlab-runner 不喜欢我的 k8s 或配置。回去检查,似乎这已经改变了。以前的工作管道在 14.1 中运行。

那么有两个问题:1)任何想法如何解决问题(例如更新一些配置,清除一些杂物,等等)和 2)我如何让 gitlab 使用 :latest 以外的运行器?

【问题讨论】:

【参考方案1】:

结果确实发生了一些变化。 gitlab-runner 发生了变化,kubernetes 在运行之间拉出了 gitlab/gitlab-runner:latest。似乎 gitlab-runner 14.3 我的 kubernetes 有问题。我回顾了我的管道,最后一个成功的是使用 14.1

因此,经过一天的工作,我编辑了相关的 k8s 部署,将用于 gitlab-runner 的图像标签重新定义为 :v14.​​1.0,这是最后一个对我有用的标签。

也许我会等几个星期,然后再尝试一个(现在我知道如何轻松更改该标签),看看问题是否得到解决。也许去 gitlab-runner 上提出一个问题

【讨论】:

以上是关于kubernetes/docker 上的 gitlab:管道失败:清理 configmap 时出错:资源名称可能不为空的主要内容,如果未能解决你的问题,请参考以下文章

Typescript Mongoose - 方法/静态函数未被调用 [Kubernetes - Docker]

Docker&Kubernetes ❀ Docker 容器技术笔记链接梳理

Docker 为什么输给了Kubernetes?Docker 员工自述!

Docker 为什么输给了Kubernetes?Docker 员工自述!

Docker&Kubernetes ❀ Docker部署MySQL案例

Docker&Kubernetes ❀ Docker Capabilities 容器进程能力权限与执行文件能力权限设置