Используйте несколько контекстов с одним и тем же именем пользователя в конфигурации kubectl - PullRequest
0 голосов
/ 12 марта 2020

Я хочу использовать несколько кластеров с моим kubectl, поэтому я либо помещаю все в одну конфигурацию, либо добавляю один конфигурационный файл на кластер в переменную KUBECONFIG env. Это нормально.

Моя проблема в том, что у меня есть пользователи с одинаковыми именами пользователей для каждого кластера, но они используют разные client-key-data для каждого кластера (контекста), но каким-то образом контекст использует этого пользователя. имя, поэтому не ясно, какой пользователь принадлежит к какому кластеру.

Лучше приведите пример:

Кластер 1:

apiVersion: v1
kind: Config
clusters:
- cluster:
    server: https://10.11.12.13:8888
  name: team-cluster
contexts:
- context:
    cluster: team-cluster
    user: kubernetes-admin
  name: kubernetes-admin@team-cluster
users:
- name: kubernetes-admin
  user:
    client-certificate-data: XXYYYZZZ
    client-key-data: XXXYYYZZZ

Кластер 2:

apiVersion: v1
kind: Config
clusters:
- cluster:
    server: https://10.11.12.14:8888
  name: dev-cluster
contexts:
- context:
    cluster: dev-cluster
    user: kubernetes-admin
  name: kubernetes-admin@dev-cluster
users:
- name: kubernetes-admin
  user:
    client-certificate-data: AABBCC
    client-key-data: AABBCC

Как видите, в обоих кластерах есть пользователь с именем kubernetes-admin, но из контекста не ясно, кто из них. Возможно, есть другой способ дать ему уникальный идентификатор, который используется контекстом.

Возможно, решение очевидно, но я не нашел ни одного примера для такого случая. Спасибо за любую помощь.

1 Ответ

0 голосов
/ 12 марта 2020

Если у вас есть несколько файлов kubeconfig в переменной KUBECONFIG, то kubectl внутренне объединяет их перед использованием (см. здесь ). Итак, если у вас есть два пользователя с одинаковыми именами в ваших файлах kubeconfig, они, вероятно, переопределят друг друга, и вы получите одно или другое.

Решение состоит в том, чтобы использовать разные имена для пользователей в различные файлы kubeconfig или явное указание одного из файлов kubeconfig, например, kubectl --kubeconfig dev-cluster.conf или наличие только одного файла kubeconfig в переменной KUBECONFIG за раз.

В общем, я бы рекомендовал первый подход и используйте уникальное имя для каждого отдельного набора учетных данных (т. е. пользователя) во всей локальной конфигурации.

...