近期在登录测试环境时,发现无法使用k8s指令来查看pod、node等信息,后来发现是rke2证书过期。
目前rke2-server证书重启(指令:sudo systemctl restart rke2-server)时候,如果发现证书过期或者距离过期不足90天,则会自动生成新的证书,然后分发同步到其他组件。
如果使用的是高可用集群,比如3台节点都是master的方式,需要每台节点执行一次sudo systemctl restart rke2-server,保险起见再将新生成的/etc/rancher/rke2/rke2.yaml文件,copy到当前用户目录(~/.kube/config)和根目录/root/.kube/config,需要使用到sudo权限。
如果证书过期时间大于90天,如何强制重新生成证书呢?
手动轮换:sudo rke2 certificate rotate,rke2如果没有配置环境变量,需要写绝对路径。
具体操作步骤如下:
bash
# 1. 停止服务 sudo systemctl stop rke2-server # 2. 轮换证书(使用完整路径命令) sudo /var/lib/rancher/rke2/bin/rke2 certificate rotate # 3. 重启服务 sudo systemctl start rke2-server # 4. 检查服务状态和新证书 sudo systemctl status rke2-server sudo /var/lib/rancher/rke2/bin/kubectl get nodes