ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

k8s集群证书过期--手动更新证书

k8s集群证书过期--手动更新证书 一、文档证书过期和管理文档二、处理方法报错如下Unable to connect to the server: tls: failed to verify certificate: x509:certificate has expired or is not yet valid: ...手动更新证书步骤1. 执行命令# 逐台处理 Master 节点每处理完一台并确认集群正常再处理下一台 sudo kubeadm certs check-expiration sudo kubeadm certs renew all sudo systemctl restart kubelet sudo kubeadm certs check-expiration2. 重启控制面 Pod执行完此命令之后你需要重启控制面 Pod。因为动态证书重载目前还不被所有组件和证书支持所有这项操作是必须的。 静态 Pod 是被本地 kubelet 而不是 API 服务器管理所以 kubectl 不能用来删除或重启他们。要重启静态 Pod 你可以临时将清单文件从/etc/kubernetes/manifests/移除并等待 20 秒 参考 KubeletConfiguration 结构中的fileCheckFrequency值。如果 Pod 不在清单目录里kubelet 将会终止它。 在另一个fileCheckFrequency周期之后你可以将文件移回去kubelet 可以完成 Pod 的重建而组件的证书更新操作也得以完成。# 确认 apiserver 证书有效后检查 API Server 容器 sudo crictl ps | grep kube-apiserver #如果 API Server 仍未加载新证书需要逐台重新加载静态 Pod。先备份清单 sudo cp -a /etc/kubernetes/manifests /etc/kubernetes/manifests.bak.$(date %F-%H%M%S) # 然后逐个 Master 节点执行 sudo mkdir -p /etc/kubernetes/manifests.tmp sudo mv /etc/kubernetes/manifests/*.yaml /etc/kubernetes/manifests.tmp/ sleep 30 sudo mv /etc/kubernetes/manifests.tmp/*.yaml /etc/kubernetes/manifests/ # 等待约 1 分钟后测试 kubectl get nodes kubectl get pods -A # 注意高可用集群必须一台一台处理不能同时停止所有 Master。
返回列表