admin管理员组文章数量:1031205
K8S证书更新时
K8S 证书更新时-吴删除组件
代码语言:javascript代码运行次数:0运行复制[root@master ~] eth0 = 172.17.64.32
# docker rm -f docker ps | grep -E 'apiserver|scheduler|controller-manager'| awk '{print$1}'
7856f2a3068e
2e1a6956d8a1
e9e3cb7870a9
31b19f4e2b22
c028146f88a5
abe4207808a3
[root@master ~] eth0 = 172.17.64.32
# docker ps | grep -E 'apiserver|scheduler|controller-manager'
[root@master ~] eth0 = 172.17.64.32
#
[root@master ~] eth0 = 172.17.64.32
# kubectl get pod
The connection to the server 172.17.64.32:6443 was refused - did you specify the right host or port?
1、 起因K8S集群证书过期更新:
- 执行了
kubeadm certs renew all
,成功更新了 Kubernetes 集群的证书(包括 API Server、Controller Manager、Scheduler 等)。 更新用户凭证
之后重启kubelet
,解决Unable to connect to the server: x509: certificate has expired or is not yet valid
证书报错
2、 误删除容器:
- 本是重启组件服务的,眼疾手快直接删除了,以为k8s会自动拉起,后面才发现这些组件时通过这些 Pod 由 kubelet 直接管理,不依赖 Kubernetes API Server 的调度和控制,
- 在执行 docker rm -f (docker ps | grep -E 'apiserver|scheduler|controller-manager' | awk '{print 1}') 后,删了 apiserver、scheduler、controller-manager 容器,导致集群状态不稳定,API Server 等组件无法访问。
3、Kubelet 服务失败:
- 尝试重启
kubelet
后,服务进入“激活中”状态,最终失败,原因是无法加载配置文件/etc/kubernetes/kubelet.conf
,并且日志显示证书过期或丢失。 kubeadm init phase kubeconfig kubelet
命令未能解决问题,因文件损坏或丢失,导致kubelet
仍然无法启动。
4、删除 kubelet.conf
文件并重新生成配置:
手动删除了 /etc/kubernetes/kubelet.conf
文件:
# 记得备份在删除
# cp /etc/kubernetes/kubelet.conf /opt/
# rm -rf /etc/kubernetes/kubelet.conf
执行了 kubeadm init phase kubeconfig kubelet
重新生成了 kubelet.conf
文件:
# kubeadm init phase kubeconfig kubelet
生成新的 kubelet.conf
文件后,重启了 kubelet
服务:
# systemctl restart kubelet
5、问题解决:
重启 kubelet
后,服务成功启动,容器重新被拉起,并且 kubelet
重新注册到集群中。可以通过以下命令确认集群状态:
# kubectl get node
# docker ps | grep -E 'apiserver|scheduler|controller-manager' | awk '{print $1}'
问题总结:
- 根本问题:在证书更新后,
kubelet
无法加载证书和配置文件,导致 Kubernetes 集群无法正常运行。误操作删除容器后,API Server 等组件也无法启动,进一步导致kubelet
启动失败。 - 解决方案:删除
/etc/kubernetes/kubelet.conf
文件,重新生成并应用新的配置文件,最后重启kubelet
服务。这样就恢复了正常的集群状态。
如果以后还遇到类似的情况,可以提前备份相关配置文件,特别是 kubelet.conf
,以防配置丢失或者损坏。
K8S证书更新时
K8S 证书更新时-吴删除组件
代码语言:javascript代码运行次数:0运行复制[root@master ~] eth0 = 172.17.64.32
# docker rm -f docker ps | grep -E 'apiserver|scheduler|controller-manager'| awk '{print$1}'
7856f2a3068e
2e1a6956d8a1
e9e3cb7870a9
31b19f4e2b22
c028146f88a5
abe4207808a3
[root@master ~] eth0 = 172.17.64.32
# docker ps | grep -E 'apiserver|scheduler|controller-manager'
[root@master ~] eth0 = 172.17.64.32
#
[root@master ~] eth0 = 172.17.64.32
# kubectl get pod
The connection to the server 172.17.64.32:6443 was refused - did you specify the right host or port?
1、 起因K8S集群证书过期更新:
- 执行了
kubeadm certs renew all
,成功更新了 Kubernetes 集群的证书(包括 API Server、Controller Manager、Scheduler 等)。 更新用户凭证
之后重启kubelet
,解决Unable to connect to the server: x509: certificate has expired or is not yet valid
证书报错
2、 误删除容器:
- 本是重启组件服务的,眼疾手快直接删除了,以为k8s会自动拉起,后面才发现这些组件时通过这些 Pod 由 kubelet 直接管理,不依赖 Kubernetes API Server 的调度和控制,
- 在执行 docker rm -f (docker ps | grep -E 'apiserver|scheduler|controller-manager' | awk '{print 1}') 后,删了 apiserver、scheduler、controller-manager 容器,导致集群状态不稳定,API Server 等组件无法访问。
3、Kubelet 服务失败:
- 尝试重启
kubelet
后,服务进入“激活中”状态,最终失败,原因是无法加载配置文件/etc/kubernetes/kubelet.conf
,并且日志显示证书过期或丢失。 kubeadm init phase kubeconfig kubelet
命令未能解决问题,因文件损坏或丢失,导致kubelet
仍然无法启动。
4、删除 kubelet.conf
文件并重新生成配置:
手动删除了 /etc/kubernetes/kubelet.conf
文件:
# 记得备份在删除
# cp /etc/kubernetes/kubelet.conf /opt/
# rm -rf /etc/kubernetes/kubelet.conf
执行了 kubeadm init phase kubeconfig kubelet
重新生成了 kubelet.conf
文件:
# kubeadm init phase kubeconfig kubelet
生成新的 kubelet.conf
文件后,重启了 kubelet
服务:
# systemctl restart kubelet
5、问题解决:
重启 kubelet
后,服务成功启动,容器重新被拉起,并且 kubelet
重新注册到集群中。可以通过以下命令确认集群状态:
# kubectl get node
# docker ps | grep -E 'apiserver|scheduler|controller-manager' | awk '{print $1}'
问题总结:
- 根本问题:在证书更新后,
kubelet
无法加载证书和配置文件,导致 Kubernetes 集群无法正常运行。误操作删除容器后,API Server 等组件也无法启动,进一步导致kubelet
启动失败。 - 解决方案:删除
/etc/kubernetes/kubelet.conf
文件,重新生成并应用新的配置文件,最后重启kubelet
服务。这样就恢复了正常的集群状态。
如果以后还遇到类似的情况,可以提前备份相关配置文件,特别是 kubelet.conf
,以防配置丢失或者损坏。
本文标签: K8S证书更新时
版权声明:本文标题:K8S证书更新时 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747721843a2208867.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论