Как заставить kubectl не использовать переменную среды AZURE_CLIENT_ID?

На моем компьютере установлена ​​переменная среды AZURE_CLIENT_ID. Я заметил, что недавно, когда я запускаю свои команды kubectl, он требует аутентификации и пытается сделать это со значением из этой переменной среды.

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

Кластер развернут в AKS.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

Подход-1:

Вы можете сбросить переменную среды, если она не требуется в течение некоторого периода времени. Используйте команду ниже AZ cli, чтобы отключить.

unset AZURE_CLIENT_ID

Подход-2:

Как подробно описано в документации kubectl github, вы можете установить необходимые учетные данные пользователя и войти в систему с помощью kubectl с помощью приведенной ниже команды AZ cli, как показано.

Я предоставил --auth-provider-arg вместо client_id пустую строку, чтобы игнорировать существующую переменную среды. Вы можете изменить значение в соответствии с требованием.

Здесь я попытался установить учетные данные для пользователя с именем Jahnavi с пустым значением client-id, и пользователь был успешно установлен следующим образом:

kubectl config set-credentials <jahnavi> --auth-provider=azure --auth-provider-arg=environment=AzurePublicCloud 
--auth-provider-arg=CLIENT_ID=  --auth-provider-arg=tenant-id = "tenantID"

Подход-3:

Если проблема не устранена, вы можете напрямую просмотреть файл конфигурации и отредактировать учетные данные пользователя, выполнив команду kubectl config view.

Он отобразит содержимое файла конфигурации Kubernetes, а также путь к файлу. После этого вы можете обновить файл, чтобы соответствующим образом удалить учетные данные Azure.

kubectl config view

Вы также можете обратиться к этому документу для получения дополнительной информации.

Я пытался использовать подход 2 (поскольку я хочу, чтобы он всегда игнорировал переменную env), но вот что я получаю: ошибка: authProvider не может быть предоставлен в сочетании с подключаемым модулем exec для clusterUser_<resource_group>_<cluster_name >. Поэтому я пытаюсь добиться того, чтобы kubectl всегда работал так, как будто AZURE_CLIENT_ID не существует, даже если он существует. Вот как это работало раньше, и я предполагаю, что были некоторые изменения

Ilya Chernomordik 13.04.2023 17:21

Для меня это работало @IlyaChernomordik без каких-либо проблем. Поэтому, если вы хотите игнорировать переменную env, вы можете просто отключить ее, как я упоминал в первом подходе. Это работает?

Jahnavi 14.04.2023 08:21

Да, это прекрасно работает, спасибо, просто неудобно каждый раз это делать...

Ilya Chernomordik 14.04.2023 10:13

Можете ли вы проверить и обновить версию kubectl и связанные с ней, потому что в некоторых версиях API эта комбинация устарела. Проверьте с помощью команды kubectl version и при необходимости обновите ее. @ИльяЧерномордик

Jahnavi 14.04.2023 10:23

У меня клиент 1.26.3 и сервер 1.24.3. Есть 2 основных различия в версиях, но я думаю, это не должно быть проблемой, так как именно kubelogin читает эти env. переменные?

Ilya Chernomordik 14.04.2023 10:35

Спасибо за помощь, я пока использую «unset», и это работает. К сожалению, с другими подходами не справился

Ilya Chernomordik 18.04.2023 12:42

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