Kubernetes-高可用集群证书更新

Kubernetes 集群中的证书主要分为两大类:

  • Kubernetes 组件证书(如:apiserver 相关的证书)
  • Etcd 集群证书

根据集群角色,证书还可以细分为:

  • 管理节点证书
  • 工作节点证书

证书详情

  1. 管理节点证书
    • Kubeadm 部署:证书会由 Kubeadm 自动生成,覆盖 Kubernetes 组件(如:apiservercontroller-managerscheduler 等)。
    • 二进制部署:通常使用 cfsslopenssl 手动生成证书,涉及更多的定制化配置。
  2. 工作节点证书
    • 工作节点主要需要连接 apiserver,使用的是客户端证书。
    • 该证书由 kube-controller-manager 组件自动颁发和管理,确保 kubelet 能安全地与 apiserver 通信。

常见证书

- **Kubeadm 部署**:证书会由 Kubeadm 自动生成,覆盖 Kubernetes 组件(如:`apiserver`、`controller-manager`、`scheduler` 等)。
- **二进制部署**:通常使用 `cfssl` 或 `openssl` 手动生成证书,涉及更多的定制化配置。
  1. 工作节点证书
    • 工作节点主要需要连接 apiserver,使用的是客户端证书。
    • 该证书由 kube-controller-manager 组件自动颁发和管理,确保 kubelet 能安全地与 apiserver 通信。

证书有效期及更新

Kubernetes 证书默认有效期为 1 年,可以通过 kubeadm certs 工具检查和更新证书:

查看证书过期时间

kubeadm certs check-expiration

该命令显示了 所有证书的到期/剩余时间,包括在etc/kubernetes/pki目录下的客户端证书及由kubeadm嵌入到KUBECONFIG文件中的客户端证书(admin.conf,controller-manager.conf和scheduler.conf)

手动更新证书

使用 kubeadm certs renew 命令 可以随时手动续订证书,该命令使用存储在/etc/kubernetes/pki中的 CA (or front-proxy-CA)证书和密钥来更新证书

证书备份

注意:高可用集群需要在所有master节点上操作

cp -r /etc/kubernetes /etc/kubernetes.bak

续订所有证书

命令执行后,注意:

  • 无论证书的到期时间如何,都会无条件地续订一年。
  • 证书的SAN等信息基于原证书,无需再次提供。
  • renew执行后,为使更改生效,需要重启各组件。

注意:高可用集群需要在所有master节点上操作

kubeadm certs renew all

查看证书有效期

[root@master01 ~]# kubeadm certs check-expiration

重启 kube-apiserver、kube-controller-manager、kube-scheduler、etcd 组件后生效

[root@master01 ~]# mv /etc/kubernetes/manifests/* /tmp/
//约等30秒后 kube-apiserver、kube-controller-manager、kube-scheduler、etcd 容器会停止,然后,再将清单文件移过来:
[root@master01 ~]# mv /tmp/kube-* /etc/kubernetes/manifests/
[root@master01 ~]# mv /tmp/etcd.yaml /etc/kubernetes/manifests/

可以看到已经重启成功

修改config文件

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
posted @ 2024-09-20 16:27  &UnstopPable  阅读(28)  评论(0编辑  收藏  举报