阿里云注册集群—混合集群-配置自动弹性伸缩-阿里云开发者社区

开发者社区> 阿里云容器服务 ACK> 正文
登录阅读全文

阿里云注册集群—混合集群-配置自动弹性伸缩

简介: 本文将为您介绍如何使用混合集群的自动弹性伸缩能力。

本文将为您介绍如何使用混合集群的自动弹性伸缩能力。


关于弹性伸缩的详细描述,请参见ACK弹性伸缩概述


创建自动弹性伸缩配置

前置要求

创建自动弹性伸缩配置将自动在您的混合集群中部署cluster-autoscaler组件(Deployment部署),这种提供云上服务的组件需要避免被调度到云下节点的同时,也要避免被调度到自动扩容出来的云上节点上(这类节点会在自动缩容后销毁,不利于Deployment类型部署的系统组件提供稳定的服务)。所以我们推荐您首先创建和扩容普通节点池并为节点池中的节点配置节点标签alibabacloud.com/cloud-worker-nodes=true。cluster-autoscaler组件将会自动调度到拥有节点标签alibabacloud.com/cloud-worker-nodes=true的云上节点上。


操作步骤

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,单击节点池
  5. 节点池页面右上角,单击自动弹性伸缩配置
  6. 自动弹性伸缩配置页面,完成弹性伸缩配置并提交。如下所示。

image.png


配置cluster-autoscaler组件

在成功完成自动弹性伸缩配置后,您的集群中就会自动部署一个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}'


创建自动弹性伸缩节点池

操作步骤

  1. 自动弹性伸缩配置页面,继续点击创建节点池
  2. 创建节点池页面,设置创建节点池的配置项。关于配置项的详细说明,部分配置项说明如下:

参数

说明

数量

您可以为节点池设置初始节点数量。如果不需要创建节点,可以填写为0。

操作系统

您可以为节点选择操作系统,包括CentOS、Alibaba Cloud Linux 2.1903 。

节点标签

您可以为集群节点添加标签。

ECS示例标签

您可以为ECS实例添加标签。

污点

可以为集群节点添加污点。

安全组

选择节点所在阿安全组。


测试自动弹性伸缩

在创建自动弹性伸缩节点池时,我们可以为节点池中的节点设置自动以节点标签例如workload=auto,那么我们就可以使用以下命令测试节点池是否可以正确弹出节点:


kubectl run nginx --image nginx -l workload=auto


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云容器服务 ACK
使用钉钉扫一扫加入圈子
+ 订阅

云端最佳容器应用运行环境,安全、稳定、极致弹性

官方博客
官网链接