在 Kubernetes 集群中,kubelet
使用的证书通常存放在节点上的特定目录。这些证书用于 kubelet
与 API 服务器之间的安全通信。具体的位置可能会根据你的 Kubernetes 安装方式和配置有所不同,下图是我自己环境【通过 kubeadm 安装的集群】中的kubelet的证书信息
kubelet
的证书通常会存放在 /var/lib/kubelet/pki/
目录下。这个目录包含以下文件:
kubelet-client-current.pem
:这是kubelet
【这时kubelet是作为客户端】用来与 API 服务器进行客户端认证的证书。kubelet.crt
:这是kubelet
【这时kubelet是作为服务端】用来提供 HTTPS 服务(如健康检查和指标)的服务器证书。kubelet.key
:这是kubelet进程服务端
的私钥。
查看 kubelet
配置文件
你可以通过查看 kubelet
的配置文件来找到证书的确切位置。例如,如果你使用的是 systemd
来管理 kubelet
服务,可以运行以下命令来查看配置文件:
sudo cat /etc/kubernetes/kubelet.conf
或者,如果你使用的是 config.yaml
文件,可以查看:
sudo cat /var/lib/kubelet/config.yaml
在这些配置文件中,你会看到类似于以下的配置项,它们指定了证书和密钥的位置:
users:
- name: system:node:masteruser:client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pemclient-key: /var/lib/kubelet/pki/kubelet-client-current.pem【这个证书是kubelet和api-server通信时的客户端的证书信息,因为k8s中https通信都是双向tls验证的,所以需要客户端和服务端都需要配置自己的证书,同时都需要配置信任对方的证书】[root@node1 pki]# cat /var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:anonymous:enabled: falsewebhook:cacheTTL: 0senabled: truex509:clientCAFile: /etc/kubernetes/pki/ca.crt【这个是主节点的k8s顶级根证书】
检查证书
一旦你知道了证书的位置,你可以使用 openssl
命令来查看证书的内容,例如:
openssl x509 -in /var/lib/kubelet/pki/kubelet-server-current.pem -text -noout
这将显示 kubelet
服务器证书的详细信息。
总结
- kubeadm 安装:证书通常在
/var/lib/kubelet/pki/
。 - 其他安装:查看
kubelet
的配置文件以确定证书的位置。 - 查看证书:使用
openssl
工具来查看证书内容。