kubernetes - 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
我可以检查什么以及如何解决这个问题?非常感谢!
解决方案
节点用户必须在 system:nodes (如果它是工作节点或 system:master 如果它是主节点)组中,看起来 master2 使用 default-auth 不在 system:nodes 组中并且没有正确的权限列出服务。如果您的节点在 system:nodes 组之外,那么您需要为用户 default-auth 设置适当的 RBAC 以使其工作。
您可以通过两种方式解决此问题:
- 将 master2 用户组更改为 system:nodes(如用户:system:node:cl9master2)注意:证书还需要使用适当的 Oranisation & CN 值创建
- 或为 default-auth 用户创建适当的 RBAC。
请参考文档页面在此处输入链接描述
谢谢, 基鲁巴岛
推荐阅读
- javascript - 重新定位/自定义图表和表格需要放置在仪表板中的位置 - Google 脚本
- laravel-5 - 如何在 laravel 5.7 中全局断开和重新连接数据库
- spring - 在服务器启动时获取 BeanCreationException。我正在使用 4.0.0 版本的 spring,3.0.7 版本的 apache tile 和 8.5v 版本的 tomcat
- c# - 更改 MaterialDesignin TextBox 样式颜色
- javascript - 在类构造函数中使用“this”作为实例方法的打字稿问题
- asp.net - 在 asp.net webforms 的 error.aspx 页面中显示自定义错误
- npm - Nativescript 中的安装问题
- erlang - 如何将消息发送到多个进程
- c# - 使用命名空间序列化 XML
- javascript - 当我想通过 json 获取图像 src 并通过车把将其添加到轮播时,猫头鹰轮播有问题?