我们使用kops工具(https://github.com/kubernetes/kops)并基于AWS帖子(https://aws.amazon.com/blogs/compute/kubernetes-clusters-aws-kops/)以及其他资源在我们的AWS账户中的EC2机器上配置了Kubernetes集群。
我们想要建立一个主要和从属的K8s集群,以便:
我们尝试通过以下方式配置群集以实现上述目的。
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
没有必要缩放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的信息
我认为你的假设是类似于kubernetes节点,大师们在彼此之间分配工作。情况并非如此,因为主人的主要任务是彼此之间达成共识。这是使用etcd完成的,这是一个分布式键值存储。维护这样的商店的问题对于1台机器来说很容易,但是你添加的机器越多越难。
添加大师的优势是能够承受更多的主故障,代价是必须让所有主人更胖(更多CPU / RAM ......),以便他们表现得足够好。