2017-07-12 47 views
0

我看到kubelet是創建在/ var一對自簽名證書/運行/ kubernetes /:什麼是kubelet TLS證書的目的

# 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自動信任這些證書?

最好的問候, 克里斯蒂安

回答

1

kubelet證書需要在端口10250.它並不需要簽署證書的HTTPS服務器,所以CA:TRUE是多餘的。不知道爲什麼這樣創建。

IIRC,kube-apiserver信任任何證書,如果它運行時沒有設置--tls-ca-file。我記得一些較老的k8s教程沒有強制執行TLS。

另外,任何人/任何東西都可以無限制地訪問kubelet,直到您打開kubelet authentication

在任何情況下,如果以這種方式運行您的k8s集羣是不安全的。我建議使用kargo,kops,kubeadm或任何一種知名工具來提升羣集。這些解決方案構建適當的證書層次結構作爲安裝過程的一部從kubelet's docs

額外信息:

--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) 
+0

集羣與kubeadm創建。從你的鏈接看來,授權是通過默認kubelet配置給予apiserver的。感謝您的幫助。 – cristi