k8s-v1.15证书过期处理-已解决
2021-01-11 17:07
211 查看
因为是笔记本虚拟机搭建所以好久没打开k8s集群了,开机后先是提示:Unable to connect to the server: x509: certificate has expired or is not yet,一会后就提示:The connection to the server 192.168.37.201:6443 was refused - did you specify the right host or port?,排查后发现为证书过期。
1:先查看集群证书过期时间:
sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not ' 输出: Not Before: May 24 03:32:37 2019 GMT Not After : May 23 03:32:38 2020 GMT
2:在当前目录编辑kubeadm.conf配置文件:
sion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration kubernetesVersion: v1.15.0 # kubernetes 版本 apiServer: certSANs: - 192.168.10.xxx # master 所有节点IP地址,包括master和slave - 192.168.10.xxx # slave1 - 192.168.10.xxx # slave2 extraArgs: service-node-port-range: 80-32767 advertise-address: 0.0.0.0 controlPlaneEndpoint: "192.168.10.xxx:6443" # APIserver 地址,也就是master节点地址 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers #这里使用国内阿里云的镜像仓库
3:更新证书
kubeadm alpha certs renew all --config kubeadm.conf sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not ' 输出: Not Before: Jun 24 10:55:40 2019 GMT Not After : Jul 27 08:37:35 2021 GMT
4:重新生成配置文件
mv /etc/kubernetes/*.conf ~/. kubeadm init phase kubeconfig all --config kubeadm.conf
5:更新.kube下的配置文件:
mv $HOME/.kube/config $HOME/.kube/config.old sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
6:重启kube-apiserver,kube-controller,kube-scheduler,etcd这4个容器:(一定要ps -a要不有可能服务容器没启动)
docker ps -a | grep -v pause | grep -E "etcd|scheduler|controller|apiserver" | awk '{print $1}' | awk '{print "docker","restart",$1}' | bash
7:重启容器后发现节点都为NotReady状态
[root@k8s-master kubernetes]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master NotReady master 384d v1.15.0 k8s-node1 NotReady node 384d v1.15.0 [root@k8s-master pki]# cd /var/lib/kubelet/pki/ [root@k8s-master pki]# ls kubelet-client-2019-12-17-18-50-01.pem kubelet-client-2019-12-17-18-50-52.pem kubelet-client-current.pem kubelet.crt kubelet.key
8:master节点中kubelet证书也需要更新,重新生成证书,删除kubelet配置文件
kubelet会向apiserver发起一个csr [root@k8s-master pki]# mkdir bakup [root@k8s-master pki]# mv kubelet* bakup/ [root@k8s-master pki]# ls bakup [root@k8s-master pki]# systemctl restart kubelet [root@k8s-master pki]# systemctl status kubelet [root@k8s-master pki]# openssl x509 -in kubelet.crt -noout -text |grep ' Not ' Not Before: Jan 5 09:25:07 2021 GMT Not After : Jan 5 09:25:07 2022 GMT //查看未授权的CSR请求: [root@k8s-master pki]# kubectl get csr<br> //approve CSR 请求,有则同意,没有则不管: [root@k8s-master pki]# kubectl certificate approve csr-4pw6g NAME AGE REQUESTOR CONDITION csr-4pw6g 1h kubelet-bootstrap Approved,Issued //验证结果 [root@k8s-master kubernetes]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready master 384d v1.15.0
9:master节点就更新完成了,然后获取token在更新slave节点时要用
[root@k8s-master kubernetes]# kubeadm token create [root@k8s-master kubernetes]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS yszrm3.d1zaj2uwj1pfo627 23h 2021-01-06T18:14:57+08:00 authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
10:node节点添加进集群(需删除原先kubelet配置文件,否则加入失败)
[root@k8s-node2 ~]# rm -rf /etc/kubernetes/kubelet.conf [root@k8s-node2 ~]# rm -rf /etc/kubernetes/pki/ca.crt [root@k8s-node2 ~]# rm -rf /etc/kubernetes/bootstrap-kubelet.conf [root@k8s-node2 ~]# systemctl stop kubelet [root@k8s-node2 ~]# kubeadm join --token=yszrm3.d1zaj2uwj1pfo627 192.168.10.XXX:6443 --node-name k8s-node2 --discovery-token-unsafe-skip-ca-verification
11:验证结果
[root@k8s-master kubernetes]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready master 384d v1.15.0 k8s-node1 Ready node 384d v1.15.0 k8s-node2 Ready <none> 11m v1.15.0
相关文章推荐
- IOS开发证书过期问题处理
- Fiddler_IE浏览器打开网页提示安全证书过期或证书错误的解决方法
- ClickOnce证书过期的处理
- Firefox 66.0.4 发布,解决由于证书过期而导致的插件损坏问题
- 解决dreamweaver4证书过期问题
- 安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决
- 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么解决?
- Zimbra邮件服务器证书过期解决办法
- iOS 各种证书的作用、有效期、过期的后果和解决办法
- Exchange Server(EDGE) 证书过期问题的解决办法
- IOS推送证书过期处理
- 安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决
- iOS推送证书过期处理方法
- libvirt tsl证书过期解决办法
- 解决证书过期而无法连接到或启动Hyper-V虚拟机的问题
- IBM HTTP Server Plugin默认plugin-key.kdb 密钥数据库文件默认个人证书密码过期分析与解决方法
- Firefox 出现证书过期时在Selenium TA中的处理方法
- 记录一次python+selenium处理需要认证证书的网站——多线程方法解决
- 证书过期问题 —— 快速解决方法
- WP开发 - VS2013证书过期解决