关于kubernetes-admin用户

在 Kubernetes 中,kubernetes-admin 是一个特殊的用户,它在集群初始化时被创建,并被授予了集群管理员的权限。当 API server 启动时,它会使用 --authorization-mode=Node,RBAC 参数来启动 RBAC 授权模式,并且它会自动创建一个名为 system:masters 的用户组,并将 kubernetes-admin 用户添加到这个组中。

在 RBAC 的配置中,system:masters 用户组被赋予了 cluster-admin 角色,这是一个预定义的角色,拥有对集群的所有资源的完全访问权限。这就是为什么 kubernetes-admin 用户拥有如此高的权限的原因。

cert clusterrolebinding

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年,替换根证书是一个敏感的操作,可能会对集群的正常运行产生影响。

大致步骤:

  1. 在每个 Master 节点上,将新的 CA 证书和密钥复制到 /etc/kubernetes/pki/ 目录。
  2. 使用 kubeadm 或其他工具在每个 Master 节点上重新生成所需的服务证书。
  3. 重启每个 Master 节点上的相关服务,例如 kube-apiserver、kube-scheduler、kube-controller-manager 、etcd、 kubelet