Я работаю на большом предприятии, которое управляет несколькими кластерами 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».
Возможно ли, что данный файл конфигурации нуждается вперевод строки после первой непустой строки?