阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展

本文涉及的产品
函数计算FC,每月15万CU 3个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。

【阅读原文】戳:阿里云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]通过控制台创建注册集群

 

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/create-a-registered-cluster-through-the-console?spm=a2c4g.11186623.0.0.4361791ckiZK3p

 

[3]容器服务管理控制台

 

https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcs.console.aliyun.com%2F%3Fspm%3Da2c4g.11186623.0.0.15b46218eStSY6

 

[4]创建节点池

 

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/create-a-node-pool#task-2457443

 

[5]阿里云ACK One官网

 

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/?spm=a2c4g.11186623.0.i11



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
监控 异构计算
Jetson 学习笔记(八):htop查看CPU占用情况和jtop监控CPU和GPU
在NVIDIA Jetson平台上使用htop和jtop工具来监控CPU、GPU和内存的使用情况,并提供了安装和使用这些工具的具体命令。
111 0
|
8天前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
|
22天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
22天前
|
机器学习/深度学习 人工智能 并行计算
CPU和GPU的区别
【10月更文挑战第14天】
|
22天前
|
机器学习/深度学习 人工智能 缓存
GPU加速和CPU有什么不同
【10月更文挑战第20天】GPU加速和CPU有什么不同
40 1
|
23天前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
16天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
127 5
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
41 0
|
2月前
|
Prometheus Kubernetes 监控
使用kubectl快速查看各个节点的CPU和内存占用量
在Kubernetes集群中,安装metrics-server,并使用kubectl快速查看集群中各个节点的资源使用情况。
127 0