Мне нужно одновременно подключить производственную и непроизводственную среду с помощью Azure CLI через мою систему Windows. У меня есть доступ к обеим средам, и у меня также есть файл конфигурации kube для обеих сред.
Я новичок в AKS, поэтому я управляю обоими файлами в своей системе и подключаю любую среду с помощью файла конфигурации, переименовывая другой файл. например, у меня в каталоге есть два файла, а именно C:\Users\foo\.kube с именем файла config и config-nonprod. Итак, теперь я вошел в Azure CLI, используя приведенные ниже команды.
Теперь, если я запущу команду kubectl get ns, она отобразит доступное пространство имен для производства, поскольку мой текущий файл конфигурации настроен на производство.
Теперь, если я хочу подключить непроизводственную среду, я просто переименовываю текущий файл конфигурации в config-prod и текущий файл config-nonprod в config. Если я запущу команду kubectl get ns, то теперь она отобразит доступное пространство имен для непроизводственной среды.
Я не хочу делать это упражнение каждый раз. Мне нужен любой способ, с помощью которого я могу соединить обе среды одновременно.
Оперативная помощь будет высоко оценена.


Правильно, kubectl, инструмент командной строки для взаимодействия с Kubernetes, изначально не поддерживает работу с несколькими кластерами с помощью одной команды. Переменная среды KUBECONFIG или флаг --kubeconfig используется для указания файла конфигурации для одного кластера для каждой операции.
Однако в одном файле kubeconfig может быть несколько контекстов, где каждый контекст соответствует отдельному кластеру. Вы переключаетесь между этими контекстами для взаимодействия с разными кластерами. Для управления и переключения контекста-
kubectl config get-contexts
kubectl config use-context <context-name>
Взаимодействуйте с конкретным кластером, изменяя контекст.
kubectl config use-context <other-context-name>
kubectl get ns
Чтобы одновременно подключиться к нескольким кластерам Kubernetes с помощью Azure CLI, вы можете использовать переменную среды KUBECONFIG, чтобы указать несколько файлов kubeconfig. 1. Откройте командную строку и установите переменную среды KUBECONFIG, чтобы включить оба файла kubeconfig, разделенные точкой с запятой (;).
set KUBECONFIG=C:\Users\foo\.kube\config;C:\Users\foo\.kube\config-nonprod
Запустите команду az login для аутентификации в Azure для обеих сред.
az login --scope foo
az account set --subscription bar
Запустите команду kubectl, чтобы взаимодействовать с желаемой средой, как описано выше, используя
kubectl config set-context <context-name>
kubectl get ns

Кстати, чтобы переключение было еще проще, можно создать псевдонимы для команд переключения контекста. используя powershell-
Set-Alias kctx-nonprod "kubectl config use-context <your-nonprod-context-name>"
используя Баш-
alias kctx-nonprod = "kubectl config use-context your-nonprod-context-name"

Теперь вы можете просто нажать kctx-nonprod или kctx-prod, чтобы быстро переключать контексты. Выполнив эти шаги, вы сможете управлять несколькими кластерами Kubernetes с одного компьютера без необходимости постоянно переименовывать и переключать файлы kubeconfig.
Ссылка: Контекст конфигурации kubectl
Он работает путем переключения контекста для обоих кластеров: prod и no-prod. Спасибо за подробный ответ и объяснение.
У меня это не работает в Windows > set-alias aks-devops "kubectl config use-context devops" >aks-devops aks-devops: термин "kubectl config use-context devops" не распознается как имя командлет, функция, файл сценария или исполняемая программа. Проверьте правильность написания имени или, если был включен путь, проверьте правильность пути и повторите попытку. > Конфигурация kubectl use-context devops Переключена на контекст «devops».
Стандартные инструменты Kubernetes поддерживают переменную среды
KUBECONFIG, которая указывает на файл конфигурации, и в моей настройке есть скрипт, который может изменить эту переменную, чтобы она указывала на тот или иной кластер. Однако инструменты поддерживают только один кластер одновременно;kubectl get nsневозможно получить пространства имен из обоих кластеров одновременно.