【问题标题】:Kubernetes API server --bind-address vs --advertise-addressKubernetes API 服务器 --bind-address 与 --advertise-address
【发布时间】:2021-05-05 18:26:33
【问题描述】:

根据referrencekube-apiserver 的两个选项是--bind-address--advertise-address 在我看来它们相互冲突。

两者之间的实际区别是什么?

--bind-addresskube-apiserver 进程将监听的地址吗?

--advertise-addresskube-apiserver 将作为其监听地址进行宣传的地址吗?如果是这样,它是如何做广告的?它是否通过网络进行某种广播?

【问题讨论】:

  • --advertise-address 是用于通告主服务器的 IP 地址。我们使用这个地址,例如当我们将工作节点添加到集群时。 --bind-address 是用于侦听 --secure-port 端口的 IP 地址(默认为 6443)。

标签: kubernetes kube-apiserver


【解决方案1】:

根据您引用的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)

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

API server ports and IP addresses

  • 默认“安全端口”为6443,但可以使用 --secure-port 标志。如documentation 中所述 - 主节点应公开安全端口,以供其他集群组件与 Kubernetes API 服务器通信。
  • 默认IP是第一个非本地主机网络接口,但可以是 更改为 --bind-address 标志。

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

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

请注意:
--advertise-address 将被kube-apiserver 用于为负责为kubernetes.default.svc 准备端点的kubernetes 控制器(核心Service 负责内部应用程序与API 服务器)。这个 Kubernetes 服务 VIP 由 kube-proxy 配置为每个节点的负载平衡。
更多关于kubernetes.default.svc和kubernetes控制器的信息可以在here找到。

Cluster <-> Master communication

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

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

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

【讨论】:

    猜你喜欢
    • 2021-08-10
    • 2014-04-14
    • 2013-06-09
    • 2023-03-30
    • 2020-06-08
    • 2021-10-09
    • 2017-10-09
    • 2013-08-03
    • 1970-01-01
    相关资源
    最近更新 更多