Kubernetes API 服务器 --bind-address 与 --advertise-address

Ire*_*aka 9 kubernetes kube-apiserver

根据参考资料,其中两个选项kube-apiserver是--bind-address和--advertise-address在我看来,它们相互冲突。

两者之间的实际差异是什么?

是进程将侦听--bind-address的地址吗?kube-apiserver

--advertise-address将通告的地址是否是kube-apiserver它将侦听的地址?如果有的话,怎么做广告呢?它是否通过网络进行某种广播?

mat*_*t_j 5

根据您引用的reference-kube-apiserver :

\n
\n

--advertise-address ip 用于向集群成员通告 apiserver 的 IP 地址。集群的其余部分必须可以访问该地址。如果为空,则将使用 --bind-address。如果未指定 --bind-address,则将使用主机的默认接口。

\n
\n

和

\n
\n

--bind-address ip 用于侦听 --secure-port 端口的 IP 地址。集群的其余部分以及 CLI/Web 客户端必须可以访问关联的接口。如果为空,则将使用所有接口(对于所有 IPv4 接口为 0.0.0.0,对于所有 IPv6 接口为 ::)。(默认 0.0.0.0)

\n
\n

这些参数是可配置的,但请记住它们应该在集群引导期间指定。

\n

API服务器端口和IP地址

\n
    \n
  • 默认 \xe2\x80\x9c 安全端口\xe2\x80\x9d 是6443,但可以使用\n 标志进行更改--secure-port。如文档中所述- 主节点应公开安全端口,以便其他集群组件与 Kubernetes API 服务器进行通信。
  • \n
  • 默认 IP 是第一个非本地主机网络接口,但可以使用该--bind-address标志\n进行更改。
  • \n
\n

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

\n
\n

默认情况下,默认 IP 是第一个非本地主机网络接口和 6443 端口。

\n
\n

请注意:
\n--advertise-address将用于kube-apiserver为 kubernetes 控制器通告此地址,该控制器负责准备端点kubernetes.default.svc(Service负责内部应用程序和 API 服务器之间的通信的核心)。此 Kubernetes 服务 VIP 通过 kube-proxy 配置为每个节点负载均衡。
\n有关 kubernetes 控制器的更多信息可以在此处kubernetes.default.svc找到。

\n

集群 <-> 主站通信

\n
\n

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

\n
\n
\n

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

\n
\n

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

\n