我试图使用kops在aws上创建k8s集群。
使用默认定义创建集群后,我看到已经创建了LoadBalance。
apiVersion: kops/v1alpha2
kind: Cluster
metadata:
name: bungee.staging.k8s.local
spec:
api:
loadBalancer:
type: Public
....
我只是想知道与集群一起创建LoadBalancer的原因。
赞赏!
答案 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。