首页 > 解决方案 > Master2 和 Master3 处于 notReady 状态。似乎与 kubelet.conf 中的用户配置有关

问题描述

申请证书续订后,我有以下问题。只有一个主人准备好了

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

我可以检查什么以及如何解决这个问题?非常感谢!

标签: kubernetes

解决方案


节点用户必须在 system:nodes (如果它是工作节点或 system:master 如果它是主节点)组中,看起来 master2 使用 default-auth 不在 system:nodes 组中并且没有正确的权限列出服务。如果您的节点在 system:nodes 组之外,那么您需要为用户 default-auth 设置适当的 RBAC 以使其工作。

您可以通过两种方式解决此问题:

  1. 将 master2 用户组更改为 system:nodes(如用户:system:node:cl9master2)注意:证书还需要使用适当的 Oranisation & CN 值创建
  2. 或为 default-auth 用户创建适当的 RBAC。

请参考文档页面在此处输入链接描述

谢谢, 基鲁巴岛


推荐阅读