如何配置我的 Kubernetes 集群以使用 Gitlab CI?

How do I configure my Kubernetes cluster to work with Gitlab CI?

我正在学习如何使用 Kubernetes 和 Gitlab CI/CD 所以我按照 the documentation 在我的 Kubernetes 集群中安装了一个 Gitlab 代理。我写了一个简单的 hello world 管道,看看它是否有效

image: "docker.io/ubuntu"

stages:
  - build

build-contabo:
  stage: build
  script:
    - echo "hello world"

但管道不会 运行 并抱怨缺少配置:

Running with gitlab-runner 14.6.0 (5316d4ac)
  on vmi769777 NWjdRisx
Preparing the "kubernetes" executor 00:09
WARNING: Namespace is empty, therefore assuming 'default'.
Using Kubernetes namespace: default
ERROR: Preparation failed: getting Kubernetes config: invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable

我阅读了如何 configure an agent,但找不到解决此错误的任何内容。 我还部署了一个 hello world kubernetes 部署来检查我的集群是否不工作,但它 运行 成功。

如何提供配置以便我的管道 运行s? 这是Kubernetes集群还是Gitlab配置的问题?

你试过设置KUBE_CONFIG_PATH吗?我遇到了同样的错误,但是 export KUBE_CONFIG_PATH=/path/to/kubeconfig 似乎解决了这个问题。

我发现了问题。

所以 kubectl 有效,因为当 运行 时我在 root 用户中。 此用户在其主页 /home/root/.kube.

中有一个 kubernetes 配置

gitlab runner 在不同的用户中运行,在我的例子中 gitlab-runner。 该用户没有 kubernetes 配置目录。

从根目录复制它解决了问题:cp -r /home/root/.kube /home/gitlab-runner/.kube