Kubernetes: Как одновременно подключить производственный и непроизводственный Azure CLI через систему Windows?

Мне нужно одновременно подключить производственную и непроизводственную среду с помощью Azure CLI через мою систему Windows. У меня есть доступ к обеим средам, и у меня также есть файл конфигурации kube для обеих сред.

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

  • az вход --scope foo
  • az набор учетных записей -- панель подписки

Теперь, если я запущу команду kubectl get ns, она отобразит доступное пространство имен для производства, поскольку мой текущий файл конфигурации настроен на производство.

Теперь, если я хочу подключить непроизводственную среду, я просто переименовываю текущий файл конфигурации в config-prod и текущий файл config-nonprod в config. Если я запущу команду kubectl get ns, то теперь она отобразит доступное пространство имен для непроизводственной среды.

Я не хочу делать это упражнение каждый раз. Мне нужен любой способ, с помощью которого я могу соединить обе среды одновременно.

Оперативная помощь будет высоко оценена.

Стандартные инструменты Kubernetes поддерживают переменную среды KUBECONFIG, которая указывает на файл конфигурации, и в моей настройке есть скрипт, который может изменить эту переменную, чтобы она указывала на тот или иной кластер. Однако инструменты поддерживают только один кластер одновременно; kubectl get ns невозможно получить пространства имен из обоих кластеров одновременно.

David Maze 29.03.2024 11:45
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
1
185
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Правильно, 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. Спасибо за подробный ответ и объяснение.

Deep Dalsania 08.04.2024 09:10

У меня это не работает в Windows > set-alias aks-devops "kubectl config use-context devops" >aks-devops aks-devops: термин "kubectl config use-context devops" не распознается как имя командлет, функция, файл сценария или исполняемая программа. Проверьте правильность написания имени или, если был включен путь, проверьте правильность пути и повторите попытку. > Конфигурация kubectl use-context devops Переключена на контекст «devops».

Nick Sinyakov 06.06.2024 11:33

Другие вопросы по теме