据我了解,kube-api 服务器在与 ETCD 和 Kubelet 通信时充当客户端。ETCD 和 Kubelet 都充当 kube-api 的服务器。在安全环境下(双向 SSL 认证),kube-api 服务器需要 ETCD 和 Kubelet 证书以及 CA 证书。我不明白的是为什么我们在配置 kube-apiserver.yaml 时需要提供 ETCD (etcd-keyfile) 和 Kubelet (kubelet-client-key) 的私钥?
据我了解,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 身份验证选项,即使您想这样做