Amazon web services 如何使用kops调整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

我们已经使用kops工具()在AWS帐户中的EC2机器上配置了Kubernetes群集,并基于AWS POST()和其他资源

我们希望设置K8s主从群集,以便:

  • 它将根据系统负载自动调整大小(主节点和节点/从节点)
  • 在多AZ模式下运行,即在同一地区的每个AZ(可用区)中至少有一个主设备和一个从设备,例如us-east-1a、us-east-1b、us-east-1c等 我们试图通过以下方式配置集群以实现上述目标

  • 使用以下配置在AWS EC2机器上创建K8s群集:节点计数=3,主计数=3,分区=us-east-1c,us-east-1b,us-east-1a。我们观察到一个K8s集群是由3个主节点和3个从节点创建的。主服务器和从服务器分别位于3个AZ中

  • 然后,我们尝试使用()调整集群中的节点/从属节点的大小。我们将node_asg_min设置为3,node_asg_max设置为5。当我们增加从节点上的工作负载以触发自动缩放策略时,我们看到额外的(在安装过程中创建了默认的3个)从节点生成,并且它们确实以各种方式加入集群。这一切如期而至。这是毫无疑问的

  • 我们还希望设置集群,以便根据系统负载增加主机的数量。有没有办法做到这一点?我们尝试了几种方法,结果如下所示:

  • A) 我们不确定集群自动缩放器是否有帮助,但仍然尝试使用()调整集群中的主节点的大小。这在创建新集群时很有用,但在调整现有集群中主机的数量时却没有用。我们没有找到一个参数来为主节点指定node_asg_min,node_asg_max,而为从节点指定它的方式。有没有办法做到这一点

    B) 我们将ASG(自动缩放组)中的最小计数从1增加到3,与每个主机的三个IG(实例组)中的一个关联。我们发现创建了新实例。但是,它们没有加入主集群。有没有办法做到这一点

    您能告诉我们如何正确执行此操作的步骤和资源,以便我们能够根据系统负载自动调整主机数量,并处于多AZ模式吗

    亲切问候,,
    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消耗并不高。应用程序最终用户性能已降级。因此,我们认为增加大师的数量可以解决我们的问题。现在,我们不希望每次遇到这样的问题时都设置一个包含更多主机的新集群。因此,我们正在研究自动缩放或动态集群大小调整选项