其他分享
首页 > 其他分享> > 更新 kubernetes 过期证书

更新 kubernetes 过期证书

作者:互联网

问题描述

在Kubernetes Cluster中,在集群初时化时创建的证书1年到期。到期之后,集群的各个组件之间将无法访问

环境概述

属性信息
系统环境 CentOS Linux release 7.7.1908 (Core)
软件版本 Kubernetes v1.19.8

证书管理相关文档

官方文档 - 使用 kubeadm 进行证书管理     https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/
[官方文档 - kubeadm alpha 使用说明      https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/

解决办法

通过延长证书期限即可解决问题…………无需重新生成证书。

第一步、备份配置文件(主机节点

cp -drv /etc/kubernetes /etc/kubernetes.backup

第二步、延长证书期限(主机节点)

    单节点

可以直接运行   kubeadm alpha certs renew all --config kubeadm.yaml   完成证书更新。然后替换 kubelet 配置

     多 master 节点证书更新

 所有 master 节点依次完成如下命令

etcd 心跳证书:                  kubeadm alpha certs renew etcd-healthcheck-client --config kubeadm-config.yaml
etcd peer 证书:                kubeadm alpha certs renew etcd-peer --config kubeadm-config.yaml
etcd server 证书:              kubeadm alpha certs renew etcd-server --config kubeadm-config.yaml
front-proxy-client 证书:       kubeadm alpha certs renew front-proxy-client --config kubeadm-config.yaml
apiserver-etcd-client 证书      kubeadm alpha certs renew apiserver-etcd-client --config kubeadm-config.yaml
apiserver-kubelet-client 证书   kubeadm alpha certs renew apiserver-kubelet-client --config kubeadm-config.yaml
apiserver 证书                  kubeadm alpha certs renew apiserver --config kubeadm-config.yaml

不同的 master 节点使用的 kubeadm 配置有细微的差异,执行更新证书是,每个 master 在 --config  后面使用原来集群创建时,当前 master 对应的 kubeadm 配置文件。

第三步、更新配置文件(主机节点)

# 移除旧配置
rm -rf /etc/kubernetes/admin.conf
rm -rf /etc/kubernetes/kubelet.conf
rm -rf /etc/kubernetes/controller-manager.conf
rm -rf /etc/kubernetes/scheduler.conf

# 生成新配置(而实际上是更新客户端证书)
kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}

第四步、重启服务(所有节点)

systemctl restart kubelet.service

第五步、验证集群状态

清理前次的 kubectl 权限信息:rm -rf $HOME/.kube

重新配置 kubectl 权限信息:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

可能的问题

  1. Part of the existing bootstrap client certificate is expired: 2020-01-19 15:10:17 +0000 UTC:确认全部证书更新,并且证书更新好后,更新了 kubernetes 配置
  2. api server 日志:Unable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid]。可能原因有:证书过期;证书部分更新;master 上包含了代理配置,导致对 apiserver 的请求走了代理,证书认证通不过(运行 unset http_proxy;unset ftp_proxy;unset socks_proxy;unset https_proxy,取消代理配置)。

 

标签:kubernetes,证书,过期,--,etcd,kubeadm,config
来源: https://www.cnblogs.com/deny/p/16373633.html