невозможно получить доступ к панели управления Kubernetes через токен

  1. Я установил кубернеты с помощью kubeadm v1.8.5
  2. Настройте приборную панель, используя:
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.0/src/deploy/recommended/kubernetes-dashboard.yaml`

kubectl create -f kubernetes-dashboard.yaml

kubectl create -f kubernetes-dashboard-admin.rbac.yaml
  1. Затем настройте прокси kubectl, используя http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/, как рекомендовано.

  2. Когда я пытаюсь войти в систему, используя токен администратора kubernetes-dashboard-admin. Токен был получен с помощью команды:

    kubectl -n kube-system get secret | grep -i dashboard-admin | awk '{print $1}' | xargs -I {} 
    kubectl -n kube-system describe secret {}

Вот моя проблема: я НЕ МОГУ получить доступ к панели управления через токен, когда я вставляю токен и нажимаю кнопку «Войти», ничего не произошло. И я ничего не получаю в моем журнале [используя tail -f / var / log / messages и journalctl -xeu kubelet]. Я новичок в k8s, может, кто-нибудь скажет мне, где журнал?
 введите описание изображения здесь

Вот моя информация о кластере k8s:

[root @ k8s-1 pki] # kubectl cluster-info

Kubernetes master is running at https://172.16.1.15:6443
KubeDNS is running at https://172.16.1.15:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy
kubernetes-dashboard is running at https://172.16.1.15:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

[root @ k8s-1 pki] # kubectl get nodes

NAME      STATUS    ROLES     AGE       VERSION
k8s-1     Ready     master    4d        v1.8.5
k8s-2     Ready     <none>    4d        v1.8.5
k8s-3     Ready     <none>    4d        v1.8.5

[root @ k8s-1 pki] # kubectl get pods --all-namespaces

NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE
kube-system   etcd-k8s-1                              1/1       Running   2          4d
kube-system   kube-apiserver-k8s-1                    1/1       Running   2          4d
kube-system   kube-controller-manager-k8s-1           1/1       Running   1          4d
kube-system   kube-dns-545bc4bfd4-94vxx               3/3       Running   3          4d
kube-system   kube-flannel-ds-97frd                   1/1       Running   2          4d
kube-system   kube-flannel-ds-bl9tp                   1/1       Running   2          4d
kube-system   kube-flannel-ds-bn9hp                   1/1       Running   1          4d
kube-system   kube-proxy-9ncdm                        1/1       Running   0          4d
kube-system   kube-proxy-qjm9k                        1/1       Running   1          4d
kube-system   kube-proxy-rknz4                        1/1       Running   0          4d
kube-system   kube-scheduler-k8s-1                    1/1       Running   2          4d
kube-system   kubernetes-dashboard-7486b894c6-tszq9   1/1       Running   0          2h

Kubernetes-dashboard-admin-rbac.yaml:

[панель управления root @ k8s-1] # cat kubernetes-dashboard-admin.rbac.yaml

---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
  name: kubernetes-dashboard-admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-admin
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard-admin
  namespace: kube-system

Какие-либо предложения? Спасибо!!!


person zhwlx22    schedule 03.01.2018    source источник
comment
для проверки журналов ... kubectl logs -h, вы найдете справку о том, как его использовать   -  person Carlos    schedule 03.01.2018


Ответы (7)


Попробуйте подключиться к https, у меня такая же проблема, и у меня это работает

Руководство Kubernetes:

ПРИМЕЧАНИЕ. Панель инструментов не следует открывать публично с помощью команды kubectl proxy, поскольку она разрешает только HTTP-соединение. Для доменов, отличных от localhost и 127.0.0.1, будет невозможно войти в систему. После нажатия кнопки «Войти» на странице входа ничего не произойдет. Вход в систему доступен только при доступе к Dashboard через HTTPS или когда домен - localhost или 127.0.0.1. Так сделано из соображений безопасности. Закрытие, поскольку это работает как задумано.

person Jorge Fernández Jeronimo    schedule 24.05.2018

Попробуйте этот токен (вывод):

 kubectl -n kube-system get secret |grep  kubernetes-dashboard-token |cut -f1 -d ' ' |  xargs kubectl -n kube-system describe  secret

если не работает, попробуйте / протестируйте вход с этим токеном (вывод):

kubectl -n kube-system get secret |grep  namespace-controller-token  |cut -f1 -d ' ' |  xargs kubectl -n kube-system describe  secret

Удачи..

person EngSabry    schedule 27.03.2018

Сначала вы должны создать пользователя с правами администратора и добавить к нему привязку cluster-admin clusterrolebinding:

Используйте эти файлы admin-user.yaml и admin-user-clusterrolebinding.yaml для создания пользователя-администратора с привязкой кластера-администратора clusterrolebinding:

[root@k8s-1 kubernetes-via-kubeadm]# kubectl create -f admin-user.yaml
serviceaccount "admin-user" created

[root@k8s-1 kubernetes-via-kubeadm]# kubectl create -f admin-user-clusterrolebinding.yaml 
clusterrolebinding "admin-user" created

Чтобы получить токен для этого пользователя-администратора:

[root@k8s-1 kubernetes-via-kubeadm]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') | grep ^token: | sed 's/token:[ ]*/Token:\n/'
Token:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLW1oNzIyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwNWM0ZDZmZC0yZjYyLTExZTgtYTMxNi1jMDNmZDU2MmJiNzciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.butKxegADx3JQvKpn9Prf7RL_SoxaEyi_scYOvXurm4BAwEj8zfC9a7djqQ9mBtd5cQHlljvMb-3qFc6UPOzAwR8fc5khk-nAkH-5XeahpT8WsyxMcKxqLuyAg8gh4ZtMKvBPk9kOWDtyRBzAeGkisbLxr43ecKO71F5G8D7HR2UGSm-x4Pvhq0uqj8GyIcHw902Ti92BPuBRf-SyTl8uDCQJSDkS5Tru5w0p82borNuVXd1mmDwuI87ApQrqXTY9rbJ61m8iTr0kKJBqw5bHAUAhxwAVtVEKQNNKT6cxWp1FlhHbNkM9bhcj1qj8bN1QCMjPWlWKj7NkPbbBAJthQ

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

person tedsluis    schedule 24.03.2018
comment
Закройте, но вместо этого пространство имен должно быть kubernetes-dashboard: github.com/kubernetes/dashboard/blob/master/docs/user/ - person gvanto; 14.11.2019

Я столкнулся с этой проблемой недавно после обновления версии k8s до 1.16. Обычно я мог получить доступ к панели управления на локальном компьютере без входа в систему, но после этого обновления он начал сначала открывать страницу входа, и хотя я использовал действительный токен, он не позволял мне войти в панель управления. (Ответа не было, страница просто зависла)

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

kubectl delete clusterrolebinding kubernetes-dashboard

Затем я развернул новейшую версию информационной панели с помощью следующей команды.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

После вышеуказанных шагов я снова запускаю команду прокси, и на этот раз, введя токен, она перешла на страницу панели инструментов.

Изменить: если вы получаете ошибку, связанную с ролью кластера, и не можете открыть какой-либо фактический контент, вам может потребоваться выполнить следующие команды:

kubectl delete clusterrolebinding kubernetes-dashboard
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard --user=clusterUser
person Utku A.    schedule 03.09.2020

Выполните две команды ниже:

sym @ symserver: ~ / Downloads $ token = $ (microk8s.kubectl -n kube-system get secret | grep default-token | cut -d "" -f1)

sym @ symserver: ~ / Downloads $ microk8s.kubectl -n kube-system описать секретный токен $

команда выше сгенерирует токен для доступа к панели управления

person MaheshMore4321    schedule 31.08.2019

У вас должна быть возможность получить доступ и войти в панель управления с назначенного IP-адреса кластера. Чтобы получить IP-адрес кластера, просто выполните

kubectl get svc -n kube-system kubernetes-dashboard

и укажите в браузере этот адрес (https).

person Marcus    schedule 10.02.2018
comment
На момент написания он хорошо работал с последней версией. С тех пор не проверял. Подробная информация о том, что, по вашему мнению, не так, было бы более полезным, чем голос против. - person Marcus; 31.10.2019

Из моего другого ответа:

Получите токен службы

$ kubectl -o json get secret k8s-dashboard-sa-token-XXXXX | jq -r '.data.token' | base64 -d
eyJhbGci    ... sjcuNA8w
person tonejito    schedule 17.05.2018