Master2 и Master3 в состоянии notReady. Кажется, связано с настройкой пользователя в kubelet.conf - PullRequest
0 голосов
/ 07 августа 2020

После подачи заявки на продление сертификатов у меня возникла следующая проблема. Готов только один мастер

root@cl9master1:~# kubectl get nodes | grep master
cl9master1    Ready      master   401d   v1.15.0
cl9master2    NotReady   master   401d   v1.15.0
cl9master3    NotReady   master   401d   v1.15.0

Журналы, возвращаемые "journalctl -xeu kubelet":

août 07 09:52:15 cl9master2 kubelet[1101]: E0807 09:52:15.043958    1101 reflector.go:125] k8s.io/client-go/informers/factory.go:133: 
Failed to list *v1beta1.CSIDrriver: csidrivers.storage.k8s.io is forbidden: User "default-auth" cannot list ressource "csidrivers" in API group "storage.k8s.io" 
at the cluster scope

août 07 09:52:15 cl9master2 kubelet[1101]: E0807 09:52:15.088813    1101 kubelet.go:2248] node "cl9master2" not found
août 07 09:52:15 cl9master2 kubelet[1101]: E0807 09:52:15.189120    1101 kubelet.go:2248] node "cl9master2" not found
août 07 09:52:15 cl9master2 kubelet[1101]: E0807 09:52:15.236669    1101 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444: 
Failed to list *v1.Service: services is forbidden: User "default-auth" cannot list resource "services" in API group "" at the cluster scope
août 07 09:52:15 cl9master2 kubelet[1101]: E0807 09:52:15.289371    1101 kubelet.go:2248] node "cl9master2" not found
août 07 09:52:15 cl9master2 kubelet[1101]: E0807 09:52:15.389664    1101 kubelet.go:2248] node "cl9master2" not found

Глядя на kubectl.conf, можно увидеть различия между master1 и master2 / 3

Для master1:

root@cl9master1:~# cat /etc/kubernetes/kubelet.conf
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0t...LQo=
    server: https://10.35.104.69:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: system:node:cl9master1
  name: system:node:cl9master1@kubernetes
current-context: system:node:cl9master1@kubernetes
kind: Config
preferences: {}
users:
- name: system:node:cl9master1
  user:
    client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem
    client-key: /var/lib/kubelet/pki/kubelet-client-current.pem

Для master2

root@cl9master2:~# cat /etc/kubernetes/kubelet.conf
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0t...LQo=
    server: https://10.35.104.75:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: default-auth
  name: default-auth@kubernetes
current-context: default-auth@kubernetes
kind: Config
preferences: {}
users:
- name: default-auth
  user:
    client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem
    client-key: /var/lib/kubelet/pki/kubelet-client-current.pem

Что можно проверить и как это исправить? Большое спасибо!

1 Ответ

3 голосов
/ 07 августа 2020

Пользователи узла должны быть в группе system: nodes (если это рабочий узел или system: master, если это главный узел), похоже, что master2 использует default-auth, который находится вне группы system: nodes и не имеет правильное разрешение на перечисление услуг. Если ваш узел находится за пределами группы system: nodes, вам необходимо иметь правильный RBA C, установленный для пользователя default-auth, чтобы он работал.

Это можно исправить двумя способами:

  1. Измените группу пользователей master2 на system: nodes (например, user: system: node: cl9master2) примечание: сертификаты также должны быть созданы с правильным значением Oranisation и CN
  2. или создать правильный RBA C для пользователя с авторизацией по умолчанию.

Пожалуйста, обратитесь к странице документации введите описание ссылки здесь

Спасибо, Кируба

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