Панель управления Kubernetes, CrashLoopBackOff, пользователь не находится в пространстве имен "kube-system" - PullRequest
0 голосов
/ 27 февраля 2019

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

Список модулей системы kube. Я вижу:

kubectl get pods -n kube-system
kubernetes-dashboard-head-7478c547df-8bmxf  0/1  CrashLoopBackOff  1  12s

Перезапуск этого модуля вызывает тот же сбой.Похоже, что в журналах произошел сбой, потому что:

kubectl logs -n kube-system kubernetes-dashboard-head-7478c547df-8bmxf  
2019/02/26 23:15:57 Starting overwatch
2019/02/26 23:15:57 Using namespace: kube-system
2019/02/26 23:15:57 Using in-cluster config to connect to apiserver
2019/02/26 23:15:57 Using secret token for csrf signing
2019/02/26 23:15:57 Initializing csrf token from kubernetes-dashboard-csrf secret
panic: secrets "kubernetes-dashboard-csrf" is forbidden: User "system:serviceaccount:kube-system:kubernetes-dashboard-head" cannot get secrets in the namespace "kube-system": RBAC: role.rbac.authorization.k8s.io "kubernetes-dashboard-minimal-head" not found

Я не совсем понимаю, как это может быть.serviceaccounts из этого контейнера пространства имен kubernetes-dashbaord-head:

kubectl get serviceaccounts -n kube-system
kubernetes-dashboard-head            1         8h

Поскольку этот serviceaccount (это то же самое, что "Пользователь"?) Указан в serviceaccounts в пространстве имен kube-system,почему он не может получить секреты из этого пространства имен?

Что касается RBAC: role.rbac.authorization.k8s.io ... not found, связано ли это с этой проблемой ?

Это не на minikube.

1 Ответ

0 голосов
/ 28 февраля 2019

Прежде всего, ваш случай не связан с этой проблемой .Это та же самая ошибка, которую вы получаете.

Вам необходимо иметь соответствующие Role и RoleBinding, которых у вас, вероятно, нет, поэтому вы получаете эту ошибку.Вы можете проверить с помощью следующей команды:

kubectl get role,rolebinding -n kube-system |grep kubernetes-dashboard-minimal-head

Если вы посмотрите последний файл развертывания yaml панели мониторинга Kubernetes из вашего руководства по установке, вы найдете ниже ресурсы Role и RoleBinding.

# ------------------- Dashboard Role & Role Binding ------------------- #

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-minimal-head
  namespace: kube-system
rules:
  # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create"]
...

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: kubernetes-dashboard-minimal-head
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubernetes-dashboard-minimal-head
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard-head
  namespace: kube-system

Но я не уверен, как вы развернули развертывание, поэтому я бы посоветовал вам просто удалить файл yaml развертывания через

kubectl delete -f <your-deployment-file.yaml>

, а затем применить последнюю версию, включающую Role и RoleBindings для Dashboard

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

Затем вы можете проверить еще раз с помощью:

kubectl get role,rolebinding -n kube-system |grep kubernetes-dashboard-minimal-head

И, конечно же, проверить свои капсулы.Я надеюсь, что это будет полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...