Как войти в панель управления microk8s Kubernetes?
Я включил приборную панель в microk8s:
microk8s.enable dns dashboard
Я нашел его IP-адрес:
microk8s.kubectl get all --all-namespaces
...
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.212 <none> 443/TCP 24h
...
Я попытался отобразить его в своем браузере, используя URL-адрес https://10.152.183.212/. Мой браузер выдает ошибку "Ошибка аутентификации. Пожалуйста, попробуйте еще раз.":
Я также получил похожую ошибку: "Недостаточно данных для создания информационной структуры аутентификации".
5 ответов
Во-первых, убедитесь, что ваш браузер принимает файлы cookie для URL-адреса вашей панели, https://10.152.183.212
в этом случае.
Благодаря слабой защите microk8s, вы можете пропустить вход и просто нажать кнопку SKIP.
Если вы хотите войти в систему по-настоящему, получите токен на предъявителя для пользователя admin
из файла /snap/microk8s/current/known_token.csv
:
sed -n 's/,admin,admin.*//p' /snap/microk8s/current/known_token.csv
rP8Yredactedk5EU
Вернитесь в браузер, выберите токен и введите токен на предъявителя, найденный выше. Выберите SIGN IN и введите токен на предъявителя:
Чтобы расширить ответ @John, иногда вас могут спросить с помощью HTTP Basic Auth Prompt, вы также можете найти эти учетные данные в:
#/var/snap/microk8s/current/credentials/basic_auth.csv
~/:$ sudo cat /var/snap/microk8s/current/credentials/basic_auth.csv
<password>,admin,admin,"system:masters"
Первое значение (password
) - фактический пароль, пользователь будет admin
.
Позже вас могут попросить войти в систему с помощью секретного токена. Его можно получить следующим образом:
Во-первых, давайте выясним, какое имя токена (оно случайное), получив секретный список:
~/:$ kubectl -n kube-system get secret
NAME TYPE DATA AGE
coredns-token-k64mx kubernetes.io/service-account-token 3 86s
.
.
kubernetes-dashboard-token-wmxh6 kubernetes.io/service-account-token 3 80s
Последний токен (kubernetes-dashboard-token-wmxh6
) - это то, что мы ищем, давайте теперь получим фактическое значение:
~/:$ kubectl -n kube-system describe secret kubernetes-dashboard-token-wmxh6
Name: kubernetes-dashboard-token-wmxh6
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: 538fbe6d-ac1e-40e8-91e9-ec0cf4265545
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1115 bytes
namespace: 11 bytes
token: <token-value>
Значение поля токена (<token-value>
) будет токеном для входа в панель управления K8s.
Оттуда все будет в порядке.
kubectl describe service/kubernetes-dashboard -n kube-system
Вернет конечную точку. Для меня это выглядит так: 10.1.43.61:8443 Затем вы можете открыть свой браузер по адресу https://10.1.43.61:8443/, и вам, вероятно, придется обойти предупреждение системы безопасности.
Теперь вам нужно пройти аутентификацию, чтобы получить доступ к панели управления.
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token
(эта команда из документации) вернет токен аутентификации. Вставьте токен в экран входа в систему, и теперь у вас должен быть доступ к панели управления.
Вы можете получить токен с помощью следующей команды:
microk8s config
И получите следующий вывод:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ***
server: https://172.20.10.4:16443
name: microk8s-cluster
contexts:
- context:
cluster: microk8s-cluster
user: admin
name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
user:
token: S2Vyb0pBTEZIMXI0SG1DT1hIWEpoeTc3ZTYvaEZXbXdEMnFaMnZ0eWVXMD0K
Токен можно использовать для входа в панель управления.
Моя версия microk8sMicroK8s v1.26.6 revision 5479
, Я могу использоватьmicrok8s kubectl proxy
и это даст результат, как показано ниже
Checking if Dashboard is running.
Infer repository core for addon dashboard
Waiting for Dashboard to come up.
Trying to get token from microk8s-dashboard-token
Waiting for secret token (attempt 0)
Dashboard will be available at https://127.0.0.1:10443
Use the following token to login:
<long token show here>