无法在 Kubernetes 集群中执行 GitLab Runner:无法在命名空间“gitlab”中的 API 组“”中创建资源“秘密”

     2023-02-19     22

关键词:

【中文标题】无法在 Kubernetes 集群中执行 GitLab Runner:无法在命名空间“gitlab”中的 API 组“”中创建资源“秘密”【英文标题】:Not able to execute GitLab Runner in Kubernetes cluster: cannot create resource "secrets" in API group "" in the namespace "gitlab" 【发布时间】:2021-11-13 06:10:08 【问题描述】:

目前我正面临这个问题:

ERROR: Job failed (system failure): 
prepare environment: 
setting up credentials: 
secrets is forbidden: 
User "system:serviceaccount:default:gitlab-runner" cannot create
resource "secrets" in API group "" in the namespace "gitlab"` 
after following the official documentation on how to integrate the GitLab Runner.

我正在使用以下runner-chart-values.yaml

# The GitLab Server URL (with protocol) that want to register the runner against
# ref: https://docs.gitlab.com/runner/commands/README.html#gitlab-runner-register
#
gitlabUrl: http://example.domain/

# The Registration Token for adding new runners to the GitLab Server. This must
# be retrieved from your GitLab instance.
# ref: https://docs.gitlab.com/ce/ci/runners/README.html
#
runnerRegistrationToken: "<token>"

# For RBAC support:
rbac:
    create: true
    rules:
      - apiGroups: ["*"]

# Run all containers with the privileged flag enabled
# This will allow the docker:dind image to run if you need to run Docker
# commands. Please read the docs before turning this on:
# ref: https://docs.gitlab.com/runner/executors/kubernetes.html#using-dockerdind
runners:
    privileged: true

有什么线索吗?

非常感谢!

【问题讨论】:

【参考方案1】:

扩展 Harsh 的答案:请确保您在活动的“gitlab-runner”命名空间下工作或使用密钥 --namespace=gitlab-runner。要在活动命名空间之间切换,请使用以下命令:

kubens gitlab-runner

所以你不需要每次都使用--namespace=gitlab-runner

JFYI,我已经从我的 k8s 集群上的文章中完成了这些步骤,它对我来说很好。

【讨论】:

你好@andreas.teich。你成功了吗?【参考方案2】:

看起来命名空间不匹配,但是您可以尝试以下选项

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: gitlab-runner
  namespace: gitlab-runner
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["list", "get", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create"]
  - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get"]

确保您将 Role 的服务帐户创建到正确的命名空间。

创建角色绑定的命令

kubectl create rolebinding --namespace=gitlab-runner gitlab-runner-binding --role=gitlab-runner --serviceaccount=gitlab-runner:default

这里有很好的文档:https://medium.com/@ruben.laguna/installing-a-gitlab-runner-on-kubernetes-ac386c924bc8

【讨论】:

非常感谢您的信息。根据中篇文章做了所有事情,但遇到了在default命名空间内创建运行器的问题,甚至指定了不同的命名空间gitlab-runner

收到 http 请求时如何在 Kubernetes 集群中执行 docker 镜像

】收到http请求时如何在Kubernetes集群中执行docker镜像【英文标题】:HowtoexecutedockerimagesinsideaKubernetesclusterwhenreceiveahttprequest【发布时间】:2020-10-1419:46:55【问题描述】:我有一些docker镜像,我想在收到http请求时在Kubernetes集群中运... 查看详情

papertrail 的 fluentd 守护程序集容器无法在 kubernetes 集群中启动

】papertrail的fluentd守护程序集容器无法在kubernetes集群中启动【英文标题】:fluentddaemonsetcontainerforpapertrailfailingtostartinkubernetescluster【发布时间】:2020-04-1808:23:31【问题描述】:根据here提供的文档,我正在尝试在kubernetes集群中设... 查看详情

无法在我的 digitalocean kubernetes 集群上使用 helm 安装 istio

】无法在我的digitaloceankubernetes集群上使用helm安装istio【英文标题】:Notabletoinstallistiowithhelmonmydigitaloceankubernetescluster【发布时间】:2021-12-2415:36:58【问题描述】:我已经下载了istio的最新稳定版本,即1.11.4,并在istio发布文件夹... 查看详情

kubernetes集群安装kube-prometheus后无法执行kubectltopnode(代码片段)

背景:Kubernetes1.20.5安装Prometheus-Oprator嗯,我的集群是1.21.3了虽然是…执行kubectltopnodes如下:解决问题过程:网上一堆各种说法的,但是没有一个是适用于我的。把monitoring下所有的pod的日志看了一个遍,然... 查看详情

如何在 Kubernetes 集群环境中的 express JS 中执行 Node JS 调度程序

】如何在Kubernetes集群环境中的expressJS中执行NodeJS调度程序【英文标题】:HowtoexecutetheNodeJSschedulerwithintheexpressJSinKubernetesclusterenvironment【发布时间】:2022-01-2216:01:21【问题描述】:我在Kubernetes集群中运行NodeJS和ExpressJS作为服务,... 查看详情

无法使用 Kubernetes 执行程序访问 gitlab 运行程序中的 docker 守护进程

】无法使用Kubernetes执行程序访问gitlab运行程序中的docker守护进程【英文标题】:CannotaccessdockerdaemoningitlabrunnerusingKubernetesexecutor【发布时间】:2020-03-0920:40:28【问题描述】:我使用Kubernetes设置我的Gitlab实例以进行部署,并使用Kub... 查看详情

无法通过 Kubernetes 集群中的主机名连接到 MariaDB

】无法通过Kubernetes集群中的主机名连接到MariaDB【英文标题】:Can\'tconnecttoMariaDBbyhostnamewithinaKubernetescluster【发布时间】:2020-06-2822:29:13【问题描述】:如果我在DockerCompose配置中从官方镜像设置MariaDB,我可以通过其主机名访问它... 查看详情

无法在本地 kubernetes 集群中部署 emissary-ingress。因“验证数据错误:ValidationError(CustomResourceDefinition.spec)”而失败

】无法在本地kubernetes集群中部署emissary-ingress。因“验证数据错误:ValidationError(CustomResourceDefinition.spec)”而失败【英文标题】:Unabletodeployemissary-ingressinlocalkubernetescluster.Failswith`errorvalidatingdata:ValidationError(CustomResourceD 查看详情

kubernetes集群中logstash无法正常启动采集数据(代码片段)

背景:集群基本参照:Kuberentes1.20.5搭建eck(当然了我的套件是7.6.2版本的elastic)。本来eck版本是1.1左右的版本,7.24把集群玩坏了。存储使用的localpv的方式。直接将硬盘在集群内摘掉挂载在了另外一个集群内&#... 查看详情

如何在 Kubernetes 中执行清单策略?

】如何在Kubernetes中执行清单策略?【英文标题】:HowtoenforcepoliciesformanifestsinKubernetes?【发布时间】:2020-03-0712:40:20【问题描述】:我已经建立了一个基于Kubernetes的自助服务平台,我们为每个团队创建命名空间并允许他们“在命... 查看详情

无法在 Ubuntu 18.04(Virtual Box)上初始化 Kubernetes 集群

】无法在Ubuntu18.04(VirtualBox)上初始化Kubernetes集群【英文标题】:CannotinitializeKubernetesclusteronUbuntu18.04(VirtualBox)【发布时间】:2021-02-1116:00:04【问题描述】:我很难在Virtualbox上使用Ubuntu初始化一个简单的Kubernetes集群。我按照官... 查看详情

如何在 terraform 中导入生成的 Kubernetes 集群的命名空间

】如何在terraform中导入生成的Kubernetes集群的命名空间【英文标题】:HowtoimportageneratedKubernetescluster\'snamespaceinterraform【发布时间】:2020-01-1121:46:42【问题描述】:在我的terraform配置文件中,我在GKE上创建了一个Kubernetes集群,创建... 查看详情

使用 Cronjob Kubernetes 集群执行脚本

】使用CronjobKubernetes集群执行脚本【英文标题】:ExecutingaScriptusingaCronjobKubernetesCluster【发布时间】:2021-12-0819:29:46【问题描述】:我在AWS中有一个3节点K8v1.21集群,正在寻找SOLID配置以使用cronjob运行脚本。我在这里看到了很多文... 查看详情

如何从 Kubernetes 集群中删除分蘖

】如何从Kubernetes集群中删除分蘖【英文标题】:howtodeletetillerfromkubernetescluster【发布时间】:2018-05-1423:51:35【问题描述】:Tiller在我的Kubernetes集群中无法正常工作。我想删除Tiller的所有内容。Tiller(2.5.1)有1个Deployment、1个ReplicaSet... 查看详情

kubernetes(k8s)安装

参考技术AKubernetes是用于自动部署、扩展和管理容器化应用程序的开源系统。它旨在提供『跨主机集群的自动部署、扩展以及运行应用程序容器的平台』。它支持一系列容器工具,包括Docker等。-https://zh.wikipedia.org/wiki/Kubernetes在... 查看详情

Kubernetes:是不是可以在 Kubernetes 集群中使用单个请求来命中多个 pod

】Kubernetes:是不是可以在Kubernetes集群中使用单个请求来命中多个pod【英文标题】:Kubenetes:IsitpossibletohitmultiplepodswithasinglerequestinKubernetesclusterKubernetes:是否可以在Kubernetes集群中使用单个请求来命中多个pod【发布时间】:2018-09-11... 查看详情

如何在 kubernetes 中正确挂载文件夹

】如何在kubernetes中正确挂载文件夹【英文标题】:HowcanImountfoldercorrectlyinkubernetes【发布时间】:2022-01-2112:20:53【问题描述】:我正在尝试在我的minikubekubernetes集群(“集群”,它的一个节点:D)中运行nodered。执行此操作的docker... 查看详情

在 kubernetes 集群中部署映像获取 CrashLoopBackOff

】在kubernetes集群中部署映像获取CrashLoopBackOff【英文标题】:deployingimageinkubernetesclustergettingCrashLoopBackOff【发布时间】:2018-12-1015:19:18【问题描述】:我正在使用kubernetes集群使用kubectlcreate-fdummy.yaml部署映像。我的图像在dockerhub中... 查看详情