kubelet 需要其 HTTPS 服务器在端口 10250 上的证书。它不需要签署证书,因此 CA:TRUE 是多余的。不知道为什么以这种方式创建它。
IIRC,kube-apiserver 信任任何证书,如果它在没有--tls-ca-file
集合的情况下运行。我记得一些较旧的 k8s 教程没有强制执行 TLS。
此外,在您打开kubelet 身份验证之前,任何人/任何事物都可以不受限制地访问 kubelet 。
无论如何,如果以这种方式运行,您的 k8s 集群是不安全的。我建议使用 kargo、kops、kubeadm 或任何一种知名工具来提升集群。这些解决方案构建适当的证书层次结构作为设置过程的一部分。
来自kubelet 文档的额外信息:
--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)