Я новичок в кластеризации кубернетов, поэтому это может быть простой вопрос. Итак, я установил minikube на свой локальный компьютер, и он создает файл конфигурации в $ HOME / .kube / config. Когда я запускаю команду kubectl config view в Power Shell, я могу просмотреть учетные данные. Я уже установил переменную env KUBECONFIG, а путь - $HOME/.kube/config.

Итак, вопрос в том, что в нашей компании есть кластер onpremise kubernetes, и у меня было 2 разных файла kubeconfig для каждого кластера. (один на первом этапе производства). Как лучше всего определить эти файлы kubeconfig как переменную env для доступа к этим кластерам?

Что я пробовал, я помещал эти файлы в каталог $HOME/.kube, и в настоящее время у меня есть три файла, такие как config, c1.kubeconfig, c2.kubeconfig Затем я обновил свою переменную среды, например $HOME/.kube/config:$HOME/.kube/c1.kubeconfig:$HOME/.kube/c2.kubeconfig. Но таким образом я не могу получить доступ к кластеру c1 или c2.

1
semural 2 Янв 2020 в 18:40

2 ответа

Когда вы используете переменную среды KUBECONFIG, вы можете указать ее только на один файл kubeconfig, а не на серию файлов kubeconfig. Вам нужно объединить все отдельные файлы kubeconfig в один файл kubeconfig и сохранить его как $ HOME / .kube / config, а затем выбрать кластер, используя флаг контекста kubectl.

cp $HOME/.kube/config $HOME/.kube/config.backup.$(date +%Y-%m-%d.%H:%M:%S)
KUBECONFIG=$HOME/.kube/config:file2:file3 kubectl config view --merge --flatten > \
~/.kube/merged_kubeconfig && mv ~/.kube/merged_kubeconfig ~/.kube/config
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2

официальные документы здесь

2
Arghya Sadhu 2 Янв 2020 в 19:20
Привет, @Arghya Sadhu, мне не удалось запустить указанную выше команду в Windows. Вот полученная мной ошибка: KUBECONFIG = $ HOME \ .kube \ config: $ HOME \ .kube \ c1.kubeconfig \ $ HOME \ .kube \ c2.kubeconfig: не удалось загрузить модуль KUBECONFIG = $ HOME . Для получения дополнительной информации запустите «Import-Module KUBECONFIG = $ HOME».
 – 
semural
8 Янв 2020 в 16:11

Также изучите электроинструменты kubectxwin для лучшего и быстрого переключения контекста в Windows.

Ссылка Git для справки, как показано ниже

https://github.com/thomasliddledba/kubectxwin

(Это версия для Windows мощного инструмента kubectx https://github.com/ahmetb/kubectx#installation < / а>)

Загрузите Exe по этой ссылке.

Использование в Power Shell

PS C:\Users\DT> .\kubectxwin.exe ls
* kubernetes-admin@kubernetes

PS C:\Users\DT> .\kubectxwin.exe set kubernetes-admin@kubernetes
Switched to context "kubernetes-admin@kubernetes".

Пример: переименование контекста с помощью утилиты

PS C:\Users\DT> .\kubectxwin.exe rn kubernetes-admin@kubernetes kubeadmin
Context "kubernetes-admin@kubernetes" renamed to "kubeadmin".

PS C:\Users\DT> .\kubectxwin.exe ls
* kubeadmin

0
DT. 8 Янв 2020 в 15:13
Я не смог увидеть опцию Windows .. Похоже, это относится только к Linux или macOS
 – 
semural
8 Янв 2020 в 14:17
1
Мне удалось заставить его работать без проблем .. Просто загрузил exe-файл из репозитория и без проблем протестировал его на Windows Power Shell. PS C:\Users\DT> ./kubectxwin kubernetes-admin@kubernetes list context PS C:\Users\DT> ./kubectxwin ls * kubernetes-admin@kubernetes < a href = "https://github.com/thomasliddledba/kubectxwin/tree/master/bin" rel = "nofollow noreferrer"> ссылка на exe
 – 
DT.
8 Янв 2020 в 14:26