[分享] 怎样把一个 Kubernetes 集成给多个 GitLab 实例

通常情况下我们使用密钥把一个 Kubernetes 集成给一个 GitLab 实例、或者一个项目、一个组。如果把一个 k8s 同时集成给多个 GitLab 实例、或者多个项目、多个组,之后再多次安装 runner 给这些实例或者项目、组,会发现只有一个实例或者一个项目、一个组的 runner 可用,这是怎么回事?

问题一般出在 runner 的安装方法上:

  1. 如果您使用旧版本的 GitLab 的一键安装方式安装 runner ,由于一键安装安装的 runner 所在的 namespace、helm chart 实例名称都一样,造成前面安装的 runner 被后面安装的替换,造成只有一个 GitLab 实例或者一个组、项目的 runner 有效;

  2. 如果您手动使用 helm chart 在一个 k8s 中为多个 GitLab 实例或者组、项目安装 runner,并且使用相同的namespace 和 chart 实例名称,也会出现上面的情况。

解决方法是:
手动使用 helm chart 为多个 GitLab 实例或者组、项目安装 runner ,并且满足以下之一的条件:

Option 1: runner 所在的 namespace 不同;
Option 2: runner 的 chart 实例名称不同;