Amazon web services 如何使用kops调整K8s群集的大小,群集自动缩放以动态增加主控
我们已经使用kops工具()在AWS帐户中的EC2机器上配置了Kubernetes群集,并基于AWS POST()和其他资源 我们希望设置K8s主从群集,以便:Amazon web services 如何使用kops调整K8s群集的大小,群集自动缩放以动态增加主控,amazon-web-services,kubernetes,autoscaling,kops,Amazon Web Services,Kubernetes,Autoscaling,Kops,我们已经使用kops工具()在AWS帐户中的EC2机器上配置了Kubernetes群集,并基于AWS POST()和其他资源 我们希望设置K8s主从群集,以便: 它将根据系统负载自动调整大小(主节点和节点/从节点) 在多AZ模式下运行,即在同一地区的每个AZ(可用区)中至少有一个主设备和一个从设备,例如us-east-1a、us-east-1b、us-east-1c等 我们试图通过以下方式配置集群以实现上述目标 使用以下配置在AWS EC2机器上创建K8s群集:节点计数=3,主计数=3,分区=u
Shashi无需缩放
主节点
主组件提供集群的控制平面。主组件对集群做出全局决策(例如,调度),并检测和响应集群事件(当复制控制器的“副本”字段不满足要求时启动新pod)
主组件可以在群集中的任何计算机上运行。但是,为简单起见,设置脚本通常在同一台计算机上启动所有主组件,而不在此计算机上运行用户容器。有关多主机VM设置的示例,请参阅
主节点由以下组件组成:
kube-apiserver
主服务器上公开Kubernetes API的组件。它是Kubernetes控制飞机的前端
etcd
一致且高度可用的键值存储用作Kubernetes对所有群集数据的备份存储
kube调度程序
主服务器上的组件,用于监视新创建的未分配节点的吊舱,并为其选择要在其上运行的节点
kube管制员经理
运行的主服务器上的组件
云控制器管理器
运行与基础云提供程序交互的控制器。cloud controller manager二进制文件是Kubernetes 1.6版中引入的alpha功能
如需更详细的解释,请阅读文档。
此外,如果您正在考虑HA,您可以阅读有关的内容。我认为您的假设是,与kubernetes节点类似,masters会在彼此之间分配工作。事实并非如此,因为大师们的主要任务是在彼此之间达成共识。这是通过etcd完成的,etcd是一个分布式键值存储。维护这样一个存储区对于一台机器来说很容易,但是添加的机器越多,问题就越严重
添加主设备的优点是能够经受住更多的主设备故障,但代价是必须使所有主设备更胖(更多CPU/RAM…),以便它们的性能足够好。cluster autoscaler有助于驻留工作节点,对于主设备,您只需按可用区域创建3个主设备,我看不出驻留主机数量有任何意义,因为在主机上,您只有系统吊舱,您的用户应用程序在工作节点上运行。我们目前只有一个主机,CPU利用率很高。另一方面,节点/从节点上的CPU消耗并不高。应用程序最终用户性能已降级。因此,我们认为增加大师的数量可以解决我们的问题。现在,我们不希望每次遇到这样的问题时都设置一个包含更多主机的新集群。因此,我们考虑了自动缩放或动态集群大小调整选项。这取决于您用于主机的实例类型,除非您没有向主机发出大量api请求的组件,我有3个主机t2.中级,我对kubernetes 1.9没有任何问题。我们目前只有一个主机,CPU利用率很高。另一方面,节点/从节点上的CPU消耗并不高。应用程序最终用户性能已降级。因此,我们认为增加大师的数量可以解决我们的问题。现在,我们不希望每次遇到这样的问题时都设置一个包含更多主机的新集群。因此,我们正在研究自动缩放或动态集群大小调整选项