流生
2021-02-21
192浏览量
本文将为您介绍如何使用混合集群的自动弹性伸缩能力。
关于弹性伸缩的详细描述,请参见ACK弹性伸缩概述。
创建自动弹性伸缩配置将自动在您的混合集群中部署cluster-autoscaler组件(Deployment部署),这种提供云上服务的组件需要避免被调度到云下节点的同时,也要避免被调度到自动扩容出来的云上节点上(这类节点会在自动缩容后销毁,不利于Deployment类型部署的系统组件提供稳定的服务)。所以我们推荐您首先创建和扩容普通节点池并为节点池中的节点配置节点标签alibabacloud.com/cloud-worker-nodes=true。cluster-autoscaler组件将会自动调度到拥有节点标签alibabacloud.com/cloud-worker-nodes=true的云上节点上。
在成功完成自动弹性伸缩配置后,您的集群中就会自动部署一个Deployment部署如下所示:
kubectl -nkube-system get deploy |grep cluster-autoscaler cluster-autoscaler 1/1 1 1 5s
cluster-autoscaler组件同样需要配置其操作相关云资源的RAM Policy,如下所示:
{ "Version": "1", "Statement": [ { "Action": [ "ess:DescribeScalingGroups", "ess:DescribeScalingInstances", "ess:DescribeScalingActivities", "ess:DescribeScalingConfigurations", "ess:DescribeScalingRules", "ess:DescribeScheduledTasks", "ess:DescribeLifecycleHooks", "ess:DescribeNotificationConfigurations", "ess:DescribeNotificationTypes", "ess:DescribeRegions", "ess:CreateScalingRule", "ess:ModifyScalingGroup", "ess:RemoveInstances", "ess:ExecuteScalingRule", "ess:ModifyScalingRule", "ess:DeleteScalingRule", "ecs:DescribeInstanceTypes", "ess:DetachInstances", "vpc:DescribeVSwitches" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
您需要使用授权了以上RAM Policy的Access Key信息创建一个名为alibaba-addon-secret的Secret资源,如下所示:
$ export ACCESS_KEY_ID=xxxx $ export ACCESS_KEY_SECRET=xxxx $ kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=${ACCESS_KEY_ID}' --from-literal='access-key-secret=${ACCESS_KEY_SECRET}'
参数 | 说明 |
数量 | 您可以为节点池设置初始节点数量。如果不需要创建节点,可以填写为0。 |
操作系统 | 您可以为节点选择操作系统,包括CentOS、Alibaba Cloud Linux 2.1903 。 |
节点标签 | 您可以为集群节点添加标签。 |
ECS示例标签 | 您可以为ECS实例添加标签。 |
污点 | 可以为集群节点添加污点。 |
安全组 | 选择节点所在阿安全组。 |
在创建自动弹性伸缩节点池时,我们可以为节点池中的节点设置自动以节点标签例如workload=auto,那么我们就可以使用以下命令测试节点池是否可以正确弹出节点:
kubectl run nginx --image nginx -l workload=auto
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云端最佳容器应用运行环境,安全、稳定、极致弹性