Kubernetes kubelet tls证书的用途是什么

Kubernetes kubelet tls证书的用途是什么,kubernetes,kubelet,Kubernetes,Kubelet,我看到kubelet正在/var/run/kubernetes/中创建一对自签名证书: # ll /var/run/kubernetes/ total 8 -rw-r--r--. 1 root root 1164 iul 6 05:38 kubelet.crt -rw-------. 1 root root 1679 iul 6 05:38 kubelet.key 这些用于他自己的tls配置,并且还设置了CA:TRUE。如果删除,则会重新创建它们 我的第一个问题是使用CA:true制作它们

我看到kubelet正在/var/run/kubernetes/中创建一对自签名证书:

# ll /var/run/kubernetes/
total 8
-rw-r--r--. 1 root root 1164 iul  6 05:38 kubelet.crt
-rw-------. 1 root root 1679 iul  6 05:38 kubelet.key
这些用于他自己的tls配置,并且还设置了CA:TRUE。如果删除,则会重新创建它们

我的第一个问题是使用CA:true制作它们的目的是什么?kubelet正在用这些证书创建其他证书吗?如果是,目的是什么

为什么apiserver会自动信任这些证书

致以最良好的祝愿,
克里斯蒂安

kubelet需要为其端口10250上的HTTPS服务器提供证书。它不需要签署证书,所以CA:TRUE是多余的。不知道为什么会这样

IIRC,kube apiserver信任任何证书,如果它在没有-tls ca文件集的情况下运行。我记得一些旧的k8s教程没有强制TLS

此外,在您打开之前,任何人/任何东西都可以不受限制地访问kubelet

在任何情况下,如果以这种方式运行,则k8s群集都是不安全的。我建议使用kargo、kops、kubeadm或任何一种著名的工具来提升集群。这些解决方案作为设置过程的一部分,构建适当的证书层次结构

其他信息来自:


集群是用kubeadm创建的。从您的链接来看,授权似乎是通过默认的kubelet配置授予apiserver的。感谢您的帮助。如果您在Kubelet配置中将ServerTLSBootstrap设置为true,则Kubelet将向Kube API服务器发送证书签名请求,经批准后,Kubelet将在https服务器中使用该请求,因为这是由kubernetes签名的CA Kube API服务器将接受该请求。
--cert-dir string    The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes")
--tls-cert-file string    File containing x509 Certificate for HTTPS.  (CA cert, if any, concatenated after server cert). If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to --cert-dir.
--port int32    The port for the Kubelet to serve on. (default 10250)