实操当 Kubernetes 集群证书被全部删除后恢复

证书目录

在 master 节点上,这个目录包含:

  1. etcd 的一组证书和 CA(在 /etc/kubernetes/pki/etcd 目录下)
  2. 一组 kubernetes 的证书和 CA(在 /etc/kubernetes/pki 目录下)
  3. 还有 kube-controller-manager、kube-scheduler、cluster-admin 以及 kubelet 这些使用的 kubeconfig 文件,etcd、kube-apiserver、kube-scheduler 和 kube-controller-manager 的静态 Pod 资源清单文件(位于 /etc/kubernetes/manifests 目录)
# tree /etc/kubernetes/pki/
/etc/kubernetes/pki/
├── apiserver.crt
├── apiserver-etcd-client.crt
├── apiserver-etcd-client.key
├── apiserver.key
├── apiserver-kubelet-client.crt
├── apiserver-kubelet-client.key
├── ca.crt
├── ca.key
├── CTNCA.pem
├── etcd
│   ├── ca.crt
│   ├── ca.key
│   ├── healthcheck-client.crt
│   ├── healthcheck-client.key
│   ├── peer.crt
│   ├── peer.key
│   ├── server.crt
│   └── server.key
├── front-proxy-ca.crt
├── front-proxy-ca.key
├── front-proxy-client.crt
├── front-proxy-client.key
├── sa.key
└── sa.pub

恢复 etcd

执行下面的命令生成 etcd 集群的证书:

kubeadm init phase certs etcd-ca

上面的命令将为我们的 etcd 集群生成一个新的 CA,由于所有其他证书都必须由它来签署,我们也将把它和私钥复制到其他 master 节点(如果你是多 master)。

/etc/kubernetes/pki/etcd/ca.{key,crt}

接下来让我们在所有 master 节点上为它重新生成其余的 etcd 证书和静态资源清单。

kubeadm init phase certs etcd-healthcheck-client
kubeadm init phase certs etcd-peer
kubeadm init phase certs etcd-server
kubeadm init phase etcd local

上面的命令执行后,你应该已经有了一个正常工作的 etcd 集群了。

Kubernetes 服务

在其中一个 master 节点上执行如下的命令:

kubeadm init phase certs all
kubeadm init phase kubeconfig all
kubeadm init phase control-plane all
cp -f /etc/kubernetes/admin.conf ~/.kube/config

上面的命令将生成 Kubernetes 的所有 SSL 证书,以及 Kubernetes 服务的静态 Pods 清单和 kubeconfigs 文件。
由于其他 master 节点上的所有证书也必须由单一 CA 签署,所以我们将其复制到其他控制面节点.

/etc/kubernetes/pki/{ca,front-proxy-ca}.{key,crt}
/etc/kubernetes/pki/sa.{key,pub}

需要注意的是,Kubernetes API 还有一个配置,它为 front-proxy 客户端持有 CA 证书,它用于验证从 apiserver 到 webhooks 和聚合层服务的请求。不过 kube-apiserver 会自动更新它。到在这个阶段,我们已经有了一个完整的控制平面了。

修复dashboard

dashboard中内存监控显示不出数据,需要重启metrics-scraper pod。

参考

https://cloud.tencent.com/developer/article/1824860

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiegwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值