证书目录
在 master 节点上,这个目录包含:
- etcd 的一组证书和 CA(在 /etc/kubernetes/pki/etcd 目录下)
- 一组 kubernetes 的证书和 CA(在 /etc/kubernetes/pki 目录下)
- 还有 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
3万+

被折叠的 条评论
为什么被折叠?



