首页 > 解决方案 > 错误:准备失败:获取 Kubernetes 配置:无效配置:未提供配置 Gitlab

问题描述

嘿伙计们,这阻塞了我的流量!我在我的 Windows 机器上安装了我的 gitlab 运行器。

我在 kubernetes 执行器上注册了一个跑步者。它以前可以工作,但现在不行了。

我有一个 kubernetes 集群(由 docker desktop 提供),我的作业日志显示此错误:

ERROR: Preparation failed: getting Kubernetes config: invalid configuration: no configuration has been provided

我检查了有关此问题的其他一些资源,例如:this gitlab runner issuethis other gitlab issue和this SO questions,但没有解决方案。

我的跑步者设置中的跑步者正在跑步(绿色)

config.toml文件看起来正确:

concurrent = 5
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "kubernetes runner"
  url = "https://gitlab.com/"
  token = "My_Token"
  executor = "kubernetes"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.kubernetes]
    host = ""
    bearer_token_overwrite_allowed = false
    image = ""
    namespace = ""
    namespace_overwrite_allowed = ""
    privileged = false
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.affinity]
    [runners.kubernetes.pod_security_context]
    [runners.kubernetes.volumes]
    [runners.kubernetes.dns_config]

并且配置文件肯定在我的主目录中$HOME/.kube

我不确定在 Windows 上是如何工作的,也许代码无法配置为在 Windows 中找到此路径?问题是,它曾经工作过!

也在运行:

kubectl get pods

返回结果

有谁知道可能是什么原因?

标签: gitlabgitlab-cigitlab-ci-runner

解决方案


我有同样的问题。

我发现,当您运行时,您kubectl使用 root 或某个用户​​运行它。然而,gitlab-runner有一个单独的用户。

运行kubectl有效,因为此用户有一个 Kubernetes 配置目录/home/<kubectl-user>/.kube。它不适用于您的 gitlab 运行器,因为用户没有配置目录。

复制/home/<kubectl-user>/.kube//home/<gitlab-runner-user>/应该可以解决您的问题


推荐阅读