使用kops创建集群时创建LoadBalancer的原因是什么

pha*_*ong 2 kubernetes kops

我尝试使用 kops 在 aws 上创建 k8s 集群。

使用默认定义创建集群后,我看到已经创建了一个 LoadBalance。

apiVersion: kops/v1alpha2
kind: Cluster
metadata:
  name: bungee.staging.k8s.local
spec:
  api:
    loadBalancer:
      type: Public
....
Run Code Online (Sandbox Code Playgroud)

我只是想知道创建 LoadBalancer 和集群的原因。

欣赏 !

Jan*_*art 5

在 kops 创建 apiserver(上面称为 api,Kubernetes master 的一个组件,又名控制平面)的集群类型中,可能没有静态 IP 地址。此外,kops 可以创建一个 HA(复制)控制平面,这意味着有多个 IP 可供 apiserver 使用。

apiserver 充当所有其他 Kubernetes 组件的中央连接中心,例如所有节点都连接到它,但操作人员也通过 kubectl 连接到它们。一方面,这些配置文件不支持 apiserver 的多个 IP 地址(以利用 HA 设置)。另外,每次 apiserver IP 地址更改时更新配置文件会很困难。

因此,负载均衡器充当具有单个静态 IP 地址(具有 AWS/GCP 的任播 IP)的 apiserver(s) 的前端。此负载均衡器 IP 在 Kubernetes 组件的配置文件中指定,而不是实际的 apiserver IP。

实际上,也可以通过使用解析为 apiserver 的 IP 的 DNS 名称以及保持此记录更新的机制来解决此程序。此解决方案无法像负载均衡器那样快速响应底层 IP 的变化,但它确实为您节省了几美元,而且它失败的可能性略低,并且对云提供商的依赖程度较低。这可以像这样配置:

spec:
  api:
    dns: {}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅规范