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

时间:2019-03-30 05:48:11

标签: kubernetes kops

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

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

apiVersion: kops/v1alpha2
kind: Cluster
metadata:
  name: bungee.staging.k8s.local
spec:
  api:
    loadBalancer:
      type: Public
....

我只是想知道与集群一起创建LoadBalancer的原因。

赞赏!

1 个答案:

答案 0 :(得分:2)

在由kops创建apiserver的集群类型中(上面称为api,是Kubernetes主设备的一部分,又名控制平面) 可能没有静态IP地址。另外,kops可以创建HA(复制)控制平面,这意味着 apiserver可用的多个IP。

apiserver充当所有其他Kubernetes组件的中央连接集线器,例如,所有节点都连接到它,但操作员也通过kubectl连接到它们。首先,这些配置文件不支持apiserver的多个IP地址(以利用HA设置)。加上每次更改apiserver IP地址都会遇到困难时都要更新配置文件。

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

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

spec:
  api:
    dns: {}

有关更多详细信息,请参见specification