2017-11-11 317 views
0

我是kubernetes的新手。在這裏,我對kubernetes集羣中使用的CA證書有些疑惑。據我所知在kubernetes中有幾個CA證書,但仍不清楚它們的每個功能。這是我對他們的理解,但他們仍然不確定。Kubernetes中CA證書的不同功能是什麼?

  1. 根CA還知道作爲服務CA,

    • 其簽署certwhich在與--tls證書文件和--tls-私鑰文件的API服務器配置的API服務器。
    • 此CA證書是在KUBE控制器的管理器被配置爲與--root-CA-文件
  2. 客戶端CA

    • 此CA證書可以是由根CA簽署中間CA證書證書。
    • 它用於簽署集羣中的各個組件,有助於在啓用RBAC和NODE授權時識別其身份。例如,簽署kube-controller-manager,kube-scheduler,kube-proxy,kubelet。
    • 可以在API服務器被配置爲與--client-CA-文件
  3. requestheader客戶CA
    • 此CA證書也可以是由根CA證書籤名的中間CA證書。
    • 還不明白這個CA用於什麼? CA文件的哪種情況,只是發現如果部署了度量服務器,它將請求請求頭相關的證書和關鍵字
    • ,以便在kube中爲--proxy-client-cert-file和--proxy-client-key-file -apiserver,這些參數的值是什麼?可以使用Kubelet證書和密鑰?

除了這些CA證書,一些其他證書相對混亂也遇到過。

  1. - kube-apiserver和kube-controller-manager中的服務帳戶密鑰文件參數,可以配置哪個文件?是apiserver密鑰文件還是ROOT CA密鑰文件?
  2. 可在kube-controller-manager中設置爲
    --cluster-signing-cert-file和-cluster-signing-key-file?我們可以使用客戶端CA和客戶端CA密鑰文件嗎?

回答

0

了很好的總結是在https://github.com/kubernetes/kubernetes/issues/54665#issuecomment-340960398

的請求報頭CA用於驗證由認證代理與請求頭設置的用戶信息一起呈現一個客戶端證書。代理對用戶進行身份驗證,代理請求,並在標頭中設置用戶名/組。 API服務器在信任任何標題中的用戶信息之前驗證客戶端證書。