私が理解しているように、kube-apiサーバーはETCDおよびKubeletと通信するときにクライアントとして機能します。 ETCDとKubeletはどちらもkube-apiのサーバーとして機能します。安全な環境(双方向SSL認証)では、kube-apiサーバーにはETCDとKubeletの証明書とCA証明書が必要です。私が理解していないのは、kube-apiserver.yamlを構成するときにETCD(etcd-keyfile)とKubelet(kubelet-client-key)の秘密鍵を提供する必要があるのはなぜですか?
etcdはkubernetesでX.509相互TLS認証を使用 であるため、apiserverは、提示されたクライアント証明書に対する所有権を持っていることを証明できる必要があります。サーバーに送信します。これは秘密鍵を介して行われます。
Etcdには その他の認証オプション がありますが、kubernetesはそれらを使用せず、apiserverがetcdに接続するための非TLS認証オプションを提供しているかどうかは不明です。