【阅读原文】戳:阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务的高低峰挑战中显得力不从心。扩容慢、缩容难的问题,主要源于传统数据中心资源无法实现动态伸缩。这一切,都因为缺乏灵活、高效的解决方案而停滞不前。
为此,阿里云推出ACK One注册集群[1]架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。云上节点池自动弹性伸缩通过动态分配云上计算资源,实时响应业务需求的变化。不论是在业务高峰时自动扩容以保障服务稳定,还是在业务低峰期缩减资源以节省成本,云上节点池都能轻松应对。以最小代价换取最大收益,使得企业专注于核心业务的拓展。
ACK One注册集群云上弹性的典型场景与优势
ACK One注册集群的云上弹性能力针对的场景:
业务周期性高峰或突发式增长:本地IDC中的计算资源数量相对固定,无法应对业务周期性高峰,或者突发业务流量的增长。例如热搜、电商大促等。
业务快速增长: 在本地IDC中部署的K8s集群,往往受到IDC计算资源的限制无法动态扩容,计算资源的采购部署上线往往周期较长,无法承担业务流量的快速增长。
AI推理与训练:提供丰富的GPU实例规格选择,满足多种类型的AI任务。
ACK One注册集群云上弹性架构如下图所示:
通过ACK One注册集群,本地IDC中的K8s集群可以弹性扩容阿里云ECS节点池(CPU/GPU),利用阿里云容器服务的极致弹性能力,当业务需求增加时,节点池会自动扩展节点,当业务需求减少时,节点池会自动收缩节点。这种自动弹性伸缩的方式,可以有效解决客户业务的弹性诉求,同时在成本和时效上具有明显优势。
通过云上弹性架构图,我们可以看出目前有两种弹性算力,分别是ECS弹性算力和Serveless弹性算力,下面我们分别介绍各自的特性、优势以及适用场景。
- ECS(CPU/GPU)弹性算力 -
特性和优势
• 可控性:用户拥有对实例配置、网络、安全等的完全控制权。
• 多种实例规格:提供丰富的CPU/GPU实例类型,不仅满足普通应用,同时也可以满足AI场景下的应用。
• 持久化存储:支持挂载不同类型的存储卷,满足数据持久化需求。
适用场景
• 长期应用和服务:适合需要长期运行并具有稳定资源需求的应用。
• 高性能计算任务:需要专用高性能资源(如GPU)的任务,如AI训练和推理。
- Serverless弹性算力 -
特性和优势
• Serverless架构:无需用户管理底层的虚拟机或服务器,用户只需关注容器的运行。
• 快速启动:业务容器可以做到秒级启动,适合需要快速扩展容量的场景。
• 按需计费:基于实际使用时间进行计费,使其在成本管理方面非常高效。
适用场景
• 短期任务或批量处理任务:针对需要在短时间内处理大量数据的场景非常理想。
• 按需伸缩的应用:如电商大促、新闻热点等场景,需要快速响应业务高峰。
- ECS(CPU/GPU)弹性算力和Serverless弹性算力区别 -
管理级别:Serverless算力 是无服务器的容器服务,不需要管理基础设施;ECS 是可定制的虚拟机服务,用户可以管理服务器配置和维护。
启动速度:Serverless算力 启动速度极快,适于需要快速响应的场景;ECS 启动相对较慢。
使用灵活性:Serverless算力更加灵活,适合短期任务;ECS 适合长期运行和需要复杂设置的应用。
成本:Serverless算力 基于实际使用时间计费,更适合短期和波动大的任务;ECS 适合长期稳定负载,对于长时间运行的实例更具成本效益。
本篇主要介绍ACK One注册集群云上ECS弹性。
为本地IDC K8s集群添加云上节点池自动弹性实践
- 创建ACK One注册集群 -
1. 首先通过控制台或者命令行工具创建注册集群。更多请参考文档通过控制台创建注册集群[2]。
2. 在IDC数据中心目标Kubernetes集群部署agent代理组件。
3. 在目标集群检查代理组件运行情况。
kubectl -n kube-system get pod |grep ack-cluster-agent
预期输出:
ack-cluster-agent-5f7d568f6-6fc4k 1/1 Running 0 9s ack-cluster-agent-5f7d568f6-tf6fp 1/1 Running 0 9s
- 创建注册集群弹性节点池 -
1. 登录容器服务管理控制台[3],在左侧导航栏选择集群。
2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池。
3. 在节点池页面,根据需求创建节点池并扩容节点。具体操作,请参见创建节点池[4]。
需要选中开启自动弹性伸缩。
4. 执行如下命令,查看节点池资源。
kubectl get no -l alibabacloud.com/nodepool-id=<NodePoolID> #此处为弹性节点池ID
预期输出:
No resources found
- 部署应用验证云上节点池自动弹性伸缩 -
1. 执行如下命令,创建Pod到注册集群弹性节点池。
kubectl apply -f - <<EOF apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx-autoscaler-cloud name: nginx-deployment-autoscaler-cloud namespace: default spec: replicas: 2 selector: matchLabels: app: nginx-autoscaler-cloud template: metadata: labels: app: nginx-autoscaler-cloud spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: alibabacloud.com/nodepool-id operator: In values: - <NodePoolID> #此处填写上面创建的弹性节点池ID containers: - image: 'registry.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2' imagePullPolicy: IfNotPresent name: nginx-autoscaler-cloud ports: - containerPort: 80 protocol: TCP resources: limits: cpu: '2' memory: 4Gi requests: cpu: '1' memory: 2Gi EOF
2. 由于节点池里默认没有节点,因此会出现Pod无法调度。执行如下命令会看到Pending的Pod。
kubectl get po -owide |grep nginx-deployment-autoscaler-cloud
预期输出:
nginx-deployment-autoscaler-cloud-567d69ddb8-78szz 0/1 Pending 0 85s <none> <none> <none> <none> nginx-deployment-autoscaler-cloud-567d69ddb8-8c6h2 0/1 Pending 0 85s <none> <none> <none> <none>
3. 此时,等待触发弹性伸缩。再次执行如下命令,查看节点池资源。
kubectl get no -l alibabacloud.com/nodepool-id=<NodePoolID> #此处为弹性节点池ID
预期输出:
NAME STATUS ROLES AGE VERSION cn-zhangjiakou.192.168.XX.XXX Ready <none> 2m2s v1.28.2
4. 当节点池资源运行正常后,我们再次执行如下命令。
kubectl get po -owide |grep nginx-deployment-autoscaler-cloud
预期输出:
nginx-deployment-autoscaler-cloud-66db9cb877-8r6bc 1/1 Running 0 5m29s 192.168.XX.XXX cn-zhangjiakou.192.168.XX.XXX <none> <none> nginx-deployment-autoscaler-cloud-66db9cb877-s44b8 1/1 Running 0 5m29s 192.168.XX.XXX cn-zhangjiakou.192.168.XX.XXX <none> <none>
5. 应用缩容,节点资源自动回收。
总结
阿里云ACK One注册集群云上节点池以其卓越的弹性资源选择和简便的操作步骤,为企业带来了前所未有的灵活性和扩展能力。无论是普通计算、容器实例,还是高性能计算任务,阿里云都能快速响应业务需求,从而助力企业更高效地解决业务快速弹性的问题。
立即访问阿里云ACK One官网[5],了解更多详情,开始您的智能扩展之旅吧!
欢迎加入ACK One客户交流钉钉与我们一同交流。(钉钉群号:35688562)
相关链接:
[1]ACK One注册集群
https://help.aliyun.com/zh/ack/overview-9?spm=a2c4g.11186623.0.i2
[2]通过控制台创建注册集群
[3]容器服务管理控制台
[4]创建节点池
[5]阿里云ACK One官网
我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。
获取关于我们的更多信息~