Minikube: kubectl не использует предоставленные права доступа к токенам - PullRequest
0 голосов
/ 03 августа 2020

Используя minikube, при выполнении следующей команды:

kubectl -v=11 --kubeconfig /dev/null --insecure-skip-tls-verify -s http://localhost:8001 --token "invalid" -n namespace get pods

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

kubectl --token = $ TOKEN не запускается с разрешениями токена не Не отвечаю на мой вопрос, поскольку я указал, что использовал / dev / null в качестве файла конфигурации.

Есть идеи?

1 Ответ

1 голос
/ 05 августа 2020

Я постараюсь обобщить ответ, который я дал в комментариях.

Вопрос был: Почему запуск kubectl -s http://localhost:8001 --kubeconfig /dev/null --token <invalid_token> (где: 8001 - порт, открытый прокси-сервером kubectl) выполняет репоонды, как если бы Я был авторизован, хотя этого не должно быть, потому что я установил все возможные параметры авторизации на нулевые или неправильные значения?

Ответ таков: kubectl proxy открывает порт и выполняет всю авторизацию за вас, поэтому вы не должен. Теперь для доступа к REST api кубернетов все, что вам нужно сделать, это использовать curl localhost:8001/.... Нет токенов и сертификатов.

Поскольку вы уже авторизованы с kubectl proxy, используя kubectl и указав его на localhost: 8001 вызывает то, что авторизация не требуется, и вам не понадобятся никакие токены для доступа к8с.

В качестве альтернативы вы можете проверить, что происходит, когда вы запускаете то же самое, но вместо подключения через kubectl proxy вы используете порт kubernetes напрямую.

Вы упомянули, что используете minikube, поэтому по умолчанию это будет порт 8443

$ kubectl --kubeconfig /dev/null -s https://$(minikube ip):8443 --token "invalid" --insecure-skip-tls-verify get pods

error: You must be logged in to the server (Unauthorized)

Теперь вы видите, что все работает как положено.

...