关于kubernetes-admin用户
在 Kubernetes 中,kubernetes-admin
是一个特殊的用户,它在集群初始化时被创建,并被授予了集群管理员的权限。当 API server 启动时,它会使用 --authorization-mode=Node,RBAC
参数来启动 RBAC 授权模式,并且它会自动创建一个名为 system:masters
的用户组,并将 kubernetes-admin
用户添加到这个组中。
在 RBAC 的配置中,system:masters
用户组被赋予了 cluster-admin
角色,这是一个预定义的角色,拥有对集群的所有资源的完全访问权限。这就是为什么 kubernetes-admin
用户拥有如此高的权限的原因。
kubernetes-admin
用户的名字在代码中是硬编码的,这是因为 Kubernetes 的设计者们假定 kubernetes-admin
用户是一个特权用户,它的权限应该被严格控制。通过将这个用户的名字硬编码在代码中,可以确保这个用户总是存在,并且它的权限不能被轻易修改。
master 证书
kubeadm certs check-expiration
检查证书过期时间kubeadm certs renew all
更新master节点证书
Done renewing certificates. You must restart the kube-apiserver, kube-controller-manager, kube-scheduler and etcd, so that they can use the new certificates.
- 重启相关服务
kube-apiserver, kube-controller-manager, kube-scheduler , etcd
- 手动复制config文件
cp /etc/kubernetes/admin.conf ./kube/config
通过kubesphere初始化的高可用节点,可以通过
kk
命令快速更新所有master节点。并会自动更新/etc/kubernetes/admin.conf
到./kube/config
登录到master01节点检查证书过期
./kk certs check-expiration -f config-sample.yaml
更新所有证书
./kk certs renew all -f config-sample.yaml
kubelet证书
只需要更新所有master节点证书,kubelet证书默认会自动轮换。
在/var/lib/kubelet/config.yaml
文件中有一行,
rotateCertificates: true
,新版不需要任何配置即开启自动轮换,默认是true
参考链接
集群CA根证书
一般情况下,根证书有效期10年,替换根证书是一个敏感的操作,可能会对集群的正常运行产生影响。
大致步骤:
- 在每个 Master 节点上,将新的 CA 证书和密钥复制到
/etc/kubernetes/pki/
目录。 - 使用
kubeadm
或其他工具在每个 Master 节点上重新生成所需的服务证书。 - 重启每个 Master 节点上的相关服务,例如
kube-apiserver、kube-scheduler、kube-controller-manager 、etcd、 kubelet
。