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

我们想要设置一个K8s主节点和从节点的集群,以便:

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

  • 我们尝试通过以下方式配置集群以实现上述目标。
  • 使用以下配置的kops在AWS EC2机器上创建了K8s集群:节点数量= 3,主设备数量= 3,区域= us-east-1c,us-east-1b,us-east-1a。我们观察到,创建了一个具有8个主节点和3个从节点的K8s集群。主服务器和从属服务器分别位于3个可用区中。
  • 然后,我们尝试使用(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之后)从站节点,并且它们确实加入了群集在各个可用区中。这按预期工作。毫无疑问。
  • 我们还希望设置集群,以便基于系统负载增加主服务器的数量。有什么办法可以做到这一点?我们尝试了几种方法,结果在下面共享:

  • A)我们不确定cluster-auto scaler是否在这里有所帮助,但是仍然尝试使用(https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-master.yaml)调整集群中Master的大小。这在创建新集群时很有用,但在调整现有集群中的主服务器数量时却没有用。我们没有找到一个参数来指定Master的node_asg_min,node_asg_max的方式,就像为从属节点一样。有什么办法可以做到这一点?

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

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

    亲切的问候,
    沙市

    最佳答案

    无需缩放Master节点。

    主节点包含以下组件:
    kube-apiserver

    etcd

    kube-scheduler

    kube-controller-manager

    云 Controller 经理

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

    07-24 09:38
    查看更多