ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

更新 kubernetes 过期证书

2022-06-14 10:34:53  阅读:159  来源: 互联网

标签:kubernetes 证书 过期 -- etcd kubeadm config


问题描述

在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
  • 验证 etcd:查看 etcd 中某个节点的 docker 日志,日志中所有 etcd peer 均 active 且加入到同一个集群
  • 验证 kubernetes 集群:运行 kubectl cluster-info 和 kubectl get nodes 符合预期。
  • 确性 kubernetes 系统相关的服务运行正常 (核心是 kube-apiserver,kube-controller-manager,kube-proxykube-flannel):kubectl get pods -n kube-system
  • 检查 pod 的运行状态:kubectl get pods --all-namespaces

可能的问题

  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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有