Kubernetes API服务器 --bind-address 和 --advertise-address 的区别

8
根据参考文献kube-apiserver 接受的两个选项为 --bind-address--advertise-address,我认为它们之间存在冲突。
这两个选项有什么实际区别? --bind-addresskube-apiserver 进程监听的地址吗? --advertise-addresskube-apiserver 作为将要监听的地址进行广告宣传的地址吗?如果是,那么它如何进行广告宣传?会通过网络进行广播吗?

1
“--advertise-address” 是用于广告主节点的 IP 地址。例如,当我们将工作节点添加到集群时,我们会使用此地址。 “--bind-address” 是用于监听 --secure-port 端口(默认为 6443)的 IP 地址。 - matt_j
1个回答

5
根据您所引用的reference-kube-apiserver
--advertise-address ip 集群成员广告API服务器的IP地址。该地址必须能被集群中的其他节点访问。如果留空,则使用 --bind-address。如果未指定 --bind-address,则使用主机的默认接口。
以及
--bind-address ip 用于监听 --secure-port 端口的IP地址。相关接口必须能被集群中的其他节点和CLI/web客户端访问。如果留空,则使用所有接口(对于所有IPv4接口为0.0.0.0,对于所有IPv6接口为::)。 (默认值为0.0.0.0)
这些参数可以配置,但请记住在集群引导期间应指定它们。 API服务器端口和IP地址
  • 默认的“安全端口”是6443,但可以使用--secure-port标志进行更改。如文档中所述 - 主节点应公开安全端口以便其他集群组件与Kubernetes API服务器通信。
  • 默认IP是第一个非localhost网络接口,但可以使用--bind-address标志进行更改。

上述参数(--secure-port--bind-address)允许您为Kubernetes API配置带有安全端口的网络接口。 如前所述,如果您没有指定任何值:

默认情况下,它将是第一个非localhost网络接口和6443端口。

请注意:
--advertise-address 将被 kube-apiserver 用于向负责为 kubernetes.default.svc 准备终端的 kubernetes 控制器广告此地址(核心 Service 负责内部应用程序与 API 服务器之间的通信)。该 Kubernetes Service VIP 由 kube-proxy 配置为每节点负载平衡。
有关 kubernetes.default.svc 和 kubernetes 控制器的更多信息,请单击 这里

集群 <-> Master 通信

所有从集群到 Master 的通信路径都在 apiserver 终止(其他 Master 组件均未设计为公开远程服务)。在典型部署中,apiserver 被配置为在安全的 HTTPS 端口(443)上侦听远程连接。kubernetes 服务配置了一个虚拟 IP 地址,该地址通过 kube-proxy 重定向到 apiserver 上的 HTTPS 终端。

从主节点(apiserver)到集群有两条主要的通信路径。第一条是从apiserver到运行在集群中每个节点上的kubelet进程。第二条是通过apiserver的代理功能,从apiserver到任何节点、pod或服务。

此外,您可以通过阅读master-node-communicationcontrol-plane-node-communication了解更多有关集群内通信的信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接