Kubernetes之PKI证书

2023-03-01  本文已影响0人  宏势

一、集群使用证书

使用 kubeadm 安装Kubernetes,会自动生成集群所需的证书。
默认证书路径:/etc/kubernetes/pki, 但用户账户证书除外

├── apiserver.crt    #apiserver服务端证书
├── apiserver.key    #apiserver 服务端证书
├── apiserver-etcd-client.crt      #apiserver访问etcd的证书(外部 etcd 拓扑不需要)
├── apiserver-etcd-client.key    #apiserver访问etcd的证书
├── apiserver-kubelet-client.crt    #kubelet证书
├── apiserver-kubelet-client.key    #kubelet证书
├── ca.crt       #根证书
├── ca.key       #根证书
├── etcd   (外部 etcd 拓扑不需要)
│   ├── ca.crt       #etcd根证书
│   ├── ca.key       #etcd根证书
│   ├── healthcheck-client.crt     #pod中liveness探针客户端证书
│   ├── healthcheck-client.key     #pod中liveness探针客户端证书
│   ├── peer.crt     #etcd节点互通证书,由根证书签发
│   ├── peer.key     #etcd节点互通证书,由根证书签发
│   ├── server.crt     #etcd服务端证书,由根证书签发
│   └── server.key     #etcd服务端证书,由根证书签发
├── front-proxy-ca.crt       #代理根证书
├── front-proxy-ca.key       #代理根证书
├── front-proxy-client.crt    #由代理根证书签发的客户端证书
├── front-proxy-client.key    #由代理根证书签发的客户端证书
├── sa.key   #私钥 kube-controller-manager 用于为所生成的服务账号令牌签名
└── sa.pub   #公钥 kube-apiserver 用于进行验签

二、证书轮换

kubeadm 生成的证书默认有效期是1年,CA证书默认有效期是10年

kubeadm certs check-expiration
输出如下: certs.png

该命令显示 /etc/kubernetes/pki 文件夹中的客户端证书以及 kubeadm(admin.conf、controller-manager.conf 和 scheduler.conf) 使用的 kubeconfig 文件中嵌入的客户端证书的到期时间/剩余时间

上面的列表中没有包含 kubelet.conf,因为 kubeadm 将 kubelet 配置为自动更新证书(在有效时间剩下 30% 到 10% 之间的任意时间发起自动更新证书)。 轮换的证书位于目录 /var/lib/kubelet/pki

手动更新证书

kubeadm certs renew all
renew.png

此命令不更新CA证书以及sa公私钥,而是利用CA证书签发和更新证书,需要在所有控制面板节点上执行

利用kubeadm init phase certs 可以生成具体的证书,比如kubeadm init phase certs ca 生成kubernetes ca证书

手动更新kubelet证书

当自动更新kubelet证书失败的时候(或者证书已过期),需要手动更新kubelet证书

kubeadm init phase kubeconfig kubelet --node-name node2 --kubeconfig-dir /tmp/      生成配置文件

工作节点启动过程:

引导令牌方式安全性较低一般只用于节点初始化安全认证,只有24小时有效期

三、CA证书轮换

上一篇 下一篇

猜你喜欢

热点阅读