Получить "ошибка: найдено более одного метода аутентификации для пользователя второго уровня; найдено [token basicAuth], разрешен только один" из развертывания kubectl - PullRequest
0 голосов
/ 14 декабря 2018

Я работаю на большом предприятии, которое управляет несколькими кластерами k8s от dev до производства.

Мы часто запускаем команды "kubectl" в наших сборках Jenkins, либо для "развертывания", либо для получения данных configmap для диагностики, либодругое использование.

Каждый вызов "kubectl" получает базовый набор параметров, например:

kubectl ... --namespace ... --server=... --insecure-skip-tls-verify=true --token=...

В последние недели мы видели, как многие из этих команд не выполнялись со следующими:

error: more than one authentication method found for tier-two-user; found [token basicAuth], only one is allowed

Иногда они исчезают, когда появляется одна и та же сборка.Иногда это более настойчиво.У нас были команды людей, которые уже некоторое время смотрят на эту проблему, и нет очевидного решения.

Мы понятия не имеем, что добавляет базовые учетные данные для аутентификации.

Я был бы признателен за любую информацию.соответствующей информации, которую вы можете предоставить.

Обновление :

% kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.5+coreos.0", GitCommit:"b8e596026feda7b97f4337b115d1a9a250afa8ac", GitTreeState:"clean", BuildDate:"2017-12-12T11:01:08Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Относительно того, какая действительная команда завершилась неудачно, она либо "развернута", либо "получена".В противном случае предоставляются все указанные выше параметры.

Обновление :

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

Я подумал, что было бы интересно разыскать файл ~ / .kube / config до запуска команды.

Это в основном то, что она показывает:

apiVersion: v1
clusters:
- cluster:
...
contexts:
- context:
    cluster: target
    user: tier-two-user
  name: aaf-edge-upgrade
...
users:
...
- name: tier-two-user
  user:
    password: ...
    username: ...

Обратите внимание, что настройки для пользователя "tier-two-user" являются последним блоком в файле.

Мне любопытно, что сообщение об ошибке ссылается на неправильные настройки длято же имя пользователя, заявив, что у него есть и пароль, и токен.Кажется, что конфигурация, которую он пытается использовать, представляет собой содержимое файла конфигурации, объединенного с аргументами командной строки, который включает параметр «--token».

Возможно ли, что данный файл конфигурации нуждается вперевод строки после первой непустой строки?

...