根据参考,其中两个选项kube-apiserver
是--bind-address
和--advertise-address
在我看来,它们相互冲突。
两者之间的实际差异是什么?
进程将监听--bind-address
的地址是什么?kube-apiserver
--advertise-address
广告的地址是kube-apiserver
它要监听的地址吗?如果是这样,它是如何做广告的?它是否通过网络进行某种广播?
根据参考,其中两个选项kube-apiserver
是--bind-address
和--advertise-address
在我看来,它们相互冲突。
两者之间的实际差异是什么?
进程将监听--bind-address
的地址是什么?kube-apiserver
--advertise-address
广告的地址是kube-apiserver
它要监听的地址吗?如果是这样,它是如何做广告的?它是否通过网络进行某种广播?
根据您引用的reference-kube-apiserver:
--advertise-address ip 向集群成员通告 apiserver 的 IP 地址。集群的其余部分必须可以访问此地址。如果为空,将使用 --bind-address。如果 --bind-address 未指定,将使用主机的默认接口。
和
--bind-address ip 侦听 --secure-port 端口的 IP 地址。集群的其余部分和 CLI/Web 客户端必须可以访问关联的接口。如果为空,将使用所有接口(所有 IPv4 接口为 0.0.0.0,所有 IPv6 接口为 ::)。(默认 0.0.0.0)
这些参数是可配置的,但请记住它们应该在集群引导期间指定。
6443
,但可以使用
--secure-port
标志更改。如文档中所述- 主节点应为其他集群组件公开安全端口以与 Kubernetes API 服务器进行通信。--bind-address
标志更改。上述参数 (--secure-port
和--bind-address
) 允许您为 Kubernetes API 配置具有安全端口的网络接口。如前所述,如果您不指定任何值:
默认情况下,默认 IP 是第一个非本地主机网络接口和 6443 端口。
请注意:
--advertise-address
将用于kube-apiserver
为负责准备端点的 Kubernetes 控制器kubernetes.default.svc
(Service
负责内部应用程序和 API 服务器之间的通信的核心)通告此地址。这个 Kubernetes 服务 VIP 由 kube-proxy 配置为每个节点的负载平衡。有关kubernetes 控制器
的更多信息,请参见此处。kubernetes.default.svc
从集群到 master 的所有通信路径都终止于 apiserver(其他 master 组件均未设计为公开远程服务)。在典型的部署中,apiserver 被配置为侦听安全 HTTPS 端口 (443) 上的远程连接。 kubernetes 服务配置了一个虚拟 IP 地址,该地址被重定向(通过 kube-proxy)到 apiserver 上的 HTTPS 端点。
从主服务器(apiserver)到集群有两条主要的通信路径。第一个是从 apiserver 到运行在集群中每个节点上的 kubelet 进程。第二种是通过 apiserver 的代理功能从 apiserver 到任何节点、pod 或服务。
此外,您可以通过阅读master-node-communication和control-plane-node-communication了解有关集群内通信的更多信息。