Версия панели: 1.1
Версия Кубернета: 1.3.6
Операционная система: Ubuntu14.04
Перейти версии: 1.6.2
Разверните kubernetes и панель мониторинга как http://kubernetes.io/docs/getting-started-guides/ubuntu/
Я могу получить доступ к панели инструментов http://master-ip :8080/
но когда я получаю доступ к https://master-ip : 6443/, возвращаю «Неавторизованный»
Зачем?
У меня такая же проблема. И я думаю, что автор, возможно, еще не рассматривал это.
https://github.com/kubernetes/dashboard/issues/1116
Я предполагаю, что ваши кластеры используют сертификаты для безопасной связи по HTTPS. Здесь есть 2 проблемы.
Unauthorized
.С помощью curl легко авторизоваться, потому что вы можете легко предоставить необходимые данные.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
С браузером все сложнее. Доступ к панели управления осуществляется несколькими способами:
<MASTER_IP>:<NODE_PORT>
. (Не безопасно)kubectl proxy
и перейдите к http://127.0.0.1:8001/
(адрес привязки можно изменить). Он будет обрабатывать SSL-туннелирование, если ваш файл kubeconfig
настроен на использование безопасного соединения.Касательно второго варианта. Я могу предоставить некоторую информацию, как это сделать с помощью Firefox.
Your Certificates
. Если у вас есть 2 отдельных сертификата crt
и key
, лучше всего объединить их в сертификат PFX/PKCS#12
, потому что его легко импортировать непосредственно в хранилище сертификатов браузера. Вы можете использовать эту страницу или сделать это вручную, используя openssl
.Если сертификаты сгенерированы правильно, всплывающее окно будет отображаться при следующей попытке доступа к серверу API через HTTPS. Возможно, вам потребуется очистить кеш браузера.
Теперь вы должны увидеть приборную панель. :)
Я не знаю, как использовать токен носителя в браузере. Возможно, требуется ручная работа, чтобы добавить данные в заголовок HTTP перед отправкой запроса на сервер API.
Конечно, есть и другие варианты авторизации пользователя. Kubernetes поддерживает ABAC, RBAC и многое другое.
Браузер должен проходить аутентификацию при доступе к защищенному порту сервера API. Как показывает https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834, это можно сделать с помощью аутентификации на основе сертификатов.
Для аутентификации на основе токенов браузеры не позволяют автоматически отправлять токены-носители вместе с вашими запросами.
Панель инструментов описывает, как вы можете использовать kubectl proxy
, который добавляет ваши учетные данные для аутентификации и позволяет вам получить доступ к панели инструментов локально через прокси-сервер — https://github.com/kubernetes/dashboard#usage .
Самый полезный комментарий
Я предполагаю, что ваши кластеры используют сертификаты для безопасной связи по HTTPS. Здесь есть 2 проблемы.
Unauthorized
.С помощью curl легко авторизоваться, потому что вы можете легко предоставить необходимые данные.
`
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
С браузером все сложнее. Доступ к панели управления осуществляется несколькими способами:
<MASTER_IP>:<NODE_PORT>
. (Не безопасно)kubectl proxy
и перейдите кhttp://127.0.0.1:8001/
(адрес привязки можно изменить). Он будет обрабатывать SSL-туннелирование, если ваш файлkubeconfig
настроен на использование безопасного соединения.Касательно второго варианта. Я могу предоставить некоторую информацию, как это сделать с помощью Firefox.
Your Certificates
. Если у вас есть 2 отдельных сертификатаcrt
иkey
, лучше всего объединить их в сертификатPFX/PKCS#12
, потому что его легко импортировать непосредственно в хранилище сертификатов браузера. Вы можете использовать эту страницу или сделать это вручную, используяopenssl
.Если сертификаты сгенерированы правильно, всплывающее окно будет отображаться при следующей попытке доступа к серверу API через HTTPS. Возможно, вам потребуется очистить кеш браузера.
Теперь вы должны увидеть приборную панель. :)
Я не знаю, как использовать токен носителя в браузере. Возможно, требуется ручная работа, чтобы добавить данные в заголовок HTTP перед отправкой запроса на сервер API.
Конечно, есть и другие варианты авторизации пользователя. Kubernetes поддерживает ABAC, RBAC и многое другое.