k8s证书过期

k8s证书过期

bash 复制代码
[root@k8s-master102 ~]# kubectl get pod -A
Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2023-07-25T15:14:00+08:00 is after 2023-07-24T16:25:58Z

解决方案

  1. 备份 kubernetes配置
bash 复制代码
cp -r /etc/kubernetes  /etc/kubernetes_bak
  1. 检测证书过期
bash 复制代码
kubeadm certs check-expiration
  1. 更新证书
bash 复制代码
kubeadm certs renew all
  1. 重启kube-apiserver、kube-controller-manage、kube-scheduler
bash 复制代码
# 重启 kubelet
systemctl restart kubelet

# 重启kube-apiserver、kube-controller-manage、kube-scheduler
docker ps |grep kube-apiserver|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-controller-manage|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-scheduler|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
  1. 更新用户配置
bash 复制代码
# 备份
cp -rp $HOME/.kube/config $HOME/.kube/config.bak
# 并生成新的配置文件
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

此步骤可能会出现报错error: You must be logged in to the server (Unauthorized),请参考注意事项

注意事项

  1. 第3步更新证书以后需要重新启动
bash 复制代码
# 重启 kubelet
systemctl restart kubelet

# 重启kube-apiserver、kube-controller-manage、kube-scheduler
# 如果是docker作为容器的话,可执行如下命令。其余容器方法类似
docker ps |grep kube-apiserver|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-controller-manage|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-scheduler|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
  1. 第4步不生效,始终报错error: You must be logged in to the server (Unauthorized)

解决方案:

bash 复制代码
# 删除 cache
$HOME/.kube/cache
# 重新生成
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
相关推荐
528305 小时前
容器技术入门与Docker环境部署
java·docker·容器
5175 小时前
通过Docker挂载nginx并修改页面
nginx·docker·容器
来一杯龙舌兰10 小时前
【Kubernetes】从零搭建K8s集群:虚拟机环境配置全指南(DNS/网络/防火墙/SELinux全解析一站式配置图文教程)
linux·网络·kubernetes
xingsfdz12 小时前
Java微服务-新建demo
微服务·云原生·架构
白露与泡影12 小时前
阿里一面:微服务拆分需要考虑什么因素?
微服务·云原生·架构
大咖分享课12 小时前
微服务数据一致性技术解析:从单体到微服务的数据困局
微服务·云原生·架构·最佳实践·微服务数据一致性
Fireworkitte12 小时前
如何使用 Dockerfile 创建自定义镜像
运维·docker·容器
2501_9111212313 小时前
Docker 高级管理笔记
云原生·eureka
2401_8532757313 小时前
什么是 OpenFeigin ?微服务中的具体使用方式
微服务·云原生·架构
heart000_115 小时前
如何用 eBPF 实现 Kubernetes 网络可观测性?实战指南
网络·云原生·容器·kubernetes