如何使用kops,cluster-autoscaler调整K8s群集的大小以动态增加Masters

问题描述 投票:0回答:2

我们使用kops工具(https://github.com/kubernetes/kops)并基于AWS帖子(https://aws.amazon.com/blogs/compute/kubernetes-clusters-aws-kops/)以及其他资源在我们的AWS账户中的EC2机器上配置了Kubernetes集群。

我们想要建立一个主要和从属的K8s集群,以便:

  1. 它将根据系统负载自动调整大小(主控器和节点/从器件)。
  2. 以多AZ模式运行,即在同一区域中的每个AZ(可用区)中的至少一个主设备和一个从设备,例如,用于运行。 us-east-1a,us-east-1b,us-east-1c等等。

我们尝试通过以下方式配置群集以实现上述目的。

  1. 使用以下配置的kops在AWS EC2机器上创建K8s集群:节点计数= 3,主计数= 3,区域= us-east-1c,us-east-1b,us-east-1a。我们观察到使用3个Master&3 Slave Nodes创建了一个K8s群集。每个主服务器和从服务器都在3个AZ中。
  2. 然后我们尝试使用(https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-master.yaml)调整集群中的节点/从站的大小。我们将node_asg_min设置为3,将node_asg_max设置为5.当我们增加了从属设备上的工作负载以便触发自动扩展策略时,我们看到生成了附加的(在设置期间创建的默认设置3之后)从属节点,并且它们确实加入了各种AZ的集群。这按预期工作。这里没有问题。
  3. 我们还想设置群集,以便根据系统负载增加主服务器的数量。有没有办法实现这个目标?我们尝试了几种方法,结果如下:

A)我们不确定集群自动缩放器是否有帮助,但仍尝试使用(https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-master.yaml)调整集群中的Masters大小。这在创建新集群时很有用,但对于调整现有集群中的主服务器数量没有用。我们没有找到一个参数来为Master指定node_asg_min,node_asg_max作为从属节点的存在方式。有没有办法实现这个目标?

B)我们在ASG(自动缩放组)中将计数MIN从1增加到3,与每个主节点的三个IG(实例组)相关联。我们发现创建了新实例。但是,他们没有加入主集群。有没有办法实现这个目标?

您能否请指出我们如何正确执行此操作的步骤和资源,以便我们可以根据系统负载配置主控数量以自动调整大小并处于多可用区模式?

亲切的问候,Shashi

amazon-web-services kubernetes autoscaling kops
2个回答
2
投票

没有必要缩放Master节点。

主组件提供群集的控制平面。主组件做出关于集群的全局决策(例如,调度),以及检测和响应集群事件(当复制控制器的'副本'字段不满足时启动新的pod)。

主组件可以在群集中的任何计算机上运行。但是,为简单起见,设置脚本通常会在同一台计算机上启动所有主组件,并且不在此计算机上运行用户容器。有关多主VM设置的示例,请参阅Building High-Availability Clusters

主节点包含以下组件:

立方体API服务器

暴露Kubernetes API的master上的组件。它是Kubernetes控制飞机的前端。

ETCD

一致且高度可用的键值存储,用作Kubernetes的所有群集数据的后备存储。

KUBE-调度

主服务器上的组件,用于监视未创建节点的新创建的pod,并选择一个节点供其运行。

KUBE-控制器经理

运行controllers的主服务器上的组件。

云控制器经理

运行与底层云提供商交互的控制器。云控制器管理器二进制文件是Kubernetes 1.6版中引入的alpha功能。

有关更详细的说明,请阅读Kubernetes Components文档。此外,如果您正在考虑HA,您可以阅读有关Creating Highly Available Clusters with kubeadm的信息


0
投票

我认为你的假设是类似于kubernetes节点,大师们在彼此之间分配工作。情况并非如此,因为主人的主要任务是彼此之间达成共识。这是使用etcd完成的,这是一个分布式键值存储。维护这样的商店的问题对于1台机器来说很容易,但是你添加的机器越多越难。

添加大师的优势是能够承受更多的主故障,代价是必须让所有主人更胖(更多CPU / RAM ......),以便他们表现得足够好。

© www.soinside.com 2019 - 2024. All rights reserved.