Files
huanqing.shao b4a2a48480 Adsense
2019-10-12 20:01:03 +08:00

2.6 KiB
Raw Permalink Blame History

vssueId, layout, description, meta
vssueId layout description meta
120 LearningLayout Kubernete教程_Kubernetes组件_所有从集群worker 节点)访问 Master 节点的通信,都是针对 apiserver 的(没有任何其他 master 组件发布远程调用接口)。通常安装 Kubernetes 时apiserver 监听 HTTPS 端口443并且配置了一种或多种客户端认证方式 authentication
name content
keywords Kubernetes 教程,Kubernetes Master-Node通信

Cluster to Master

所有从集群访问 Master 节点的通信,都是针对 apiserver 的(没有任何其他 master 组件发布远程调用接口)。通常安装 Kubernetes 时apiserver 监听 HTTPS 端口443并且配置了一种或多种 客户端认证方式 authentication。至少需要配置一种形式的 授权方式 authorization,尤其是 匿名访问 anonymous requestsService Account Tokens 被启用的情况下。

节点上必须配置集群apiserver的公钥根证书public root certificate此时在提供有效的客户端身份认证的情况下节点可以安全地访问 APIServer。例如在 Google Kubernetes Engine 的一个默认 Kubernetes 安装里,通过客户端证书为 kubelet 提供客户端身份认证。请参考 kubelet TLS bootstrapping,了解如何自动为 kubelet 提供客户端证书。

对于需要调用 APIServer 接口的 Pod应该为其关联 Service Account此时Kubernetes将在创建Pod时自动为其注入公钥根证书public root certificate以及一个有效的 bearer token放在HTTP请求头Authorization字段。所有名称空间中都默认配置了名为 kubernetes Kubernetes Service该 Service对应一个虚拟 IP默认为 10.96.0.1),发送到该地址的请求将由 kube-proxy 转发到 apiserver 的 HTTPS 端口上。请参考 Service连接应用程序 了解 Kubernetes Service 是如何工作的。

得益于这些措施,默认情况下,从集群(节点以及节点上运行的 Pod访问 master 的连接是安全的,因此,可以通过不受信的网络或公网连接 Kubernetes 集群