当前位置:

首页 > 系统应用 > 本地IDC中的K8s集群如何以Serverless方式使用云上计算资源

本地IDC中的K8s集群如何以Serverless方式使用云上计算资源

在前一篇文章《应对突发流量,如何快速为自建 K8s 添加云上弹性能力》中,我们介绍了如何为 IDC 中 K8s 集群添加云上节点,应对业务流量的增长,通过多级弹性调度,灵活使用云上资源,并通过自动弹性伸缩,提高使用率,降低云上成本。这种直接添加节点的方式,适合需要自定义配置节点(runtime,ku

在前一篇文章《应对突发流量,如何快速为自建 K8s 添加云上弹性能力》中,我们介绍了如何为 IDC 中 K8s 集群添加云上节点,应对业务流量的增长,通过多级弹性调度,灵活使用云上资源,并通过自动弹性伸缩,提高使用率,降低云上成本。

这种直接添加节点的方式,适合需要自定义配置节点(runtime,kubelet,NVIDIA 等),需要特定 ECS 实例规格等场景。同时,这种方式意味您需要自行维护云上节点池。

如果您不想维护云上节点池,您可以选择 Serverless 方式使用阿里云 ECI 弹性容器实例运行业务 Pod,更加高效弹性的使用云上 CPU/GPU 资源。

概述

通过 Serverless 方式使用云上计 CPU/GPU 资源,针对的问题依然是 IDC 中 K8s 集群的弹性能力不足,不能满足业务的快速增长、周期性业务增长和突发业务流量。

Serverless方式能在K8s集群直接提交业务Pod,Pod会利用阿里云ECI弹性容器实例来运行。ECI弹性容器实例启动迅速,与业务Pod的生命周期同步,按Pod运行时长计费。如此一来,就无需为IDC中的K8s集群在云上创建节点,无需规划云上资源容量,也无需等待ECS创建完成,实现了极致的弹性,还节省了节点运维成本。

IDC 中 K8s 集群以 Serverless 方式使用云上 CPU/GPU 资源,适合以下业务场景:

  • 在线业务的波峰波谷弹性伸缩:如在线教育、电商等行业有着明显的波峰波谷计算特征。使用 Serverless ECI 可以显著减少固定资源池的维护,降低计算成本。
  • 数据计算:使用 Serverless ECI 承载 Spark、Presto、ArgoWorkflow 等计算场景,按 Pod 运行时间计费,有效降低计算成本。
  • CI/CD Pipeline:Jenkins、Gitlab-Runner。
  • Job 任务:定时任务、AI。

演示-IDC 中 K8s 集群以 Serverless 方式使用云上资源

1. 前提条件

已经通过 ACK One 注册机群接入 IDC 中 K8s 集群,参见《选对方法,K8s 多集群管理没那么难》。

2. 安装 ack-virtual-node 组件

通过 ACK One 注册集群控制台安装 ack-virtual-node 组件,安装组件后,通过注册集群 kubeconfig 查看集群节点池。virtual-kubelet 为虚拟节点,对接阿里云 Serverless ECI。

kubectl get node
NAME STATUS ROLES AGE VERSION
iz8vb1xtnuu0ne6b58hvx0z Ready master 4d3h v1.20.9 //IDC集群节点,示例只有1个master节点,同时也是worker节点,可以运行业务容器
virtual-kubelet-cn-zhangjiakou-a Ready agent 99s v1.20.9。//安装ack-virtual-node组件生产的虚拟节点

3. 使用 Serverless ECI 运行 Pod(CPU/GPU 任务)

方式一:给Pod配置标签,添加标签http://alibabacloud.com/eci=true,Pod就会以Serverless ECI的方式运行。比如在示例中,使用GPU ECI实例来运行CUDA任务,根本不需要安装和配置NVIDIA driver以及runtime,真正实现了Serverless化运行。

a. 提交 Pod,使用 Serverless ECI 运行。

> cat <apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
labels:
alibabacloud.com/eci: "true" # 指定Pod使用Serverless ECI运行
annotations:
k8s.aliyun.com/eci-use-specs: ecs.gn5-c4g1.xlarge # 指定支持的GPU规格,该规格具备1个NVIDIA P100 GPU
spec:
restartPolicy: Never
containers:
- name: cuda-container
image: acr-multiple-clusters-registry.cn-hangzhou.cr.aliyuncs.com/ack-multiple-clusters/cuda10.2-vectoradd
resources:
limits:
nvidia.com/gpu: 1 # 申请1个GPU
EOF

b. 查看 Pod,Pod 运行在虚拟节点 virtual-kubelet 上,实际后台使用阿里云 Serverless ECI 运行。

> kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
gpu-pod 0/1 Completed 0 5m30s 172.16.217.90 virtual-kubelet-cn-zhangjiakou-a

> kubectl logs gpu-pod
Using CUDA Device [0]: Tesla P100-PCIE-16GB
GPU Device has SM 6.0 compute capability
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done

方式二:设置命名空间标签

为命名空间设置标签http://alibabacloud.com/eci=true,命名空间中所有新建 pod,将以 Serverless ECI 方式运行。

kubectl label namespace  alibabacloud.com/eci=true

4. 多级弹性调度

上面的演示中,我们通过设置 Pod 或者命名空间的标签以使用 Serverless ECI 运行 Pod。如果您期望应用运行过程中优先使用 IDC 中的节点资源运行 Pod,当 IDC 资源不足时,再使用阿里云 Serverless ECI 运行 Pod。您可以使用 ACK One 注册集群的多级弹性调度,通过安装 ack-co-scheduler 组件,您可以定义 ResourcePolicy CR 对象,使用多级弹性调度功能。

ResourcePolicy CR 是命名空间资源,重要参数解析:

  • selector:声明 ResourcePolicy 作用于同一命名空间下 label 上打了 key1=value1 的 Pod
  • strategy:调度策略选择,目前只支持 prefer
  • units:用户自定义的调度单元。应用扩容时,将按照 units 下资源的顺序选择资源运行;应用缩容时,将按照逆序进行缩容
    • resource:弹性资源的类型,目前支持 idc、ecs 和 eci 三种类型
    • nodeSelector:用 node 的 label 标识该调度单元下的节点,只对 ecs 资源生效
    • max:在该组资源最多部署多少个实例

步骤如下:

1) 定义 ResourcePolicy CR,优先使用 IDC 中集群资源,再使用云上 Serverless ECI 资源。

> cat << EOF | kubectl apply -f -
apiVersion: scheduling.alibabacloud.com/v1alpha1
kind: ResourcePolicy
metadata:
name: cost-balance-policy
spec:
selector:
app: nginx // 选择应用Pod
strategy: prefer
units:
- resource: idc //优先使用idc指定使用IDC中节点资源
- resource: eci //当idc节点资源不足时,使用Serverless ECI
EOF

2) 创建应用 Deployment,启动 2 个副本,每个副本需要 2 个 CPU。

> cat << EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx
annotations:
addannotion: "true"
labels:
app: nginx # 此处要与上一步创建的ResourcePolicy的selector相关联。
spec:
schedulerName: ack-co-scheduler
containers:
- name: nginx
image: acr-multiple-clusters-registry.cn-hangzhou.cr.aliyuncs.com/ack-multiple-clusters/nginx
resources:
requests:
cpu: 2
limits:
cpu: 2
EOF

3) 执行以下命令对应用扩容 4 个副本,IDC 中 K8s 集群只有一个 6CPU 节点,最多启动 2 个 nginx pods(系统资源预留,无法启动 3 个 pod)。剩余的 2 个副本在 IDC 节点资源不足后,自动使用阿里云 Serverless ECI 运行 Pods。

kubectl scale deployment nginx --replicas 4

4) 查看 Pod 运行情况,2 个 Pod 运行在 IDC 中的节点,2 个 Pod 使用虚拟节点在阿里云 Serverless ECI 上运行。

> kubectl get pod -o widek get pod -o wideNAME                     READY   STATUS    RESTARTS   AGE     IP              NODE                      nginx-79cd98b4b5-97s47   1/1     Running   0          84s     10.100.75.22    iz8vb1xtnuu0ne6b58hvx0z   nginx-79cd98b4b5-gxd8z   1/1     Running   0          84s     10.100.75.23    iz8vb1xtnuu0ne6b58hvx0z   nginx-79cd98b4b5-k55rb   1/1     Running   0          58s     10.100.75.24    virtual-kubelet-cn-zhangjiakou-anginx-79cd98b4b5-m9jxm   1/1     Running   0          58s     10.100.75.25    virtual-kubelet-cn-zhangjiakou-a

总结

本文介绍了基于 ACK One 注册集群实现 IDC 中 K8s 集群以 Serverless ECI 方式使用阿里云 CPU 和 GPU 计算资源,以应对业务流量增长。这种方式,完全 Serverless 化,无需额外运维云上节点,按 Pod 运行时间计费,灵活高效。

参考文档:

[1] 注册集群概述

https://help.aliyun.com/document_detail/155208.html

[2] 使用弹性容器ECI扩容集群

https://help.aliyun.com/document_detail/164370.html

[3] ECI支持的实例类型

https://help.aliyun.com/document_detail/451262.html

[4] 多级弹性调度

https://help.aliyun.com/document_detail/446694.html

点击立即免费试用云产品 开启云上实践之旅!

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
系统应用
相关文章 更多
普通用户选Windows 10家庭版还是专业版?适用场景分析
普通用户选Windows 10家庭版还是专业版?适用场景分析

不确定该选Windows 10家庭版还是专业版?本文解析两者在远程连接、磁盘加密和虚拟化等方面的实际差异,帮你避开性能误区,根据真实使用场景做出最具性价比的选择。

win10断电重启后自动继续更新要怎么阻止
win10断电重启后自动继续更新要怎么阻止

Win10断电重启后总是自动继续更新怎么办?别强行关机,先等恢复完成。教你用暂停更新、设置活动时间和按流量计费连接,减少更新对工作的打扰。注意Win10支持已终止,长期不更新有风险。

win10能不能单独关闭功能更新不关闭安全补丁
win10能不能单独关闭功能更新不关闭安全补丁

解析Windows 10功能更新与质量更新的区别。说明个人家庭版无法永久单独关闭功能更新,专业版可通过组策略延迟功能升级。提醒用户关注Win10支持终止时间,避免误用禁用服务导致安全风险。

win10使用移动热点如何禁止win10自动更新下载
win10使用移动热点如何禁止win10自动更新下载

想知道Win10连手机热点时如何避免偷跑流量?只需将热点网络设为“按流量计费的连接”,即可限制Windows Update自动下载非优先更新。本文提供详细界面导览与设置步骤,助你精准控制后台数据消耗。

U盘启动安装Windows11容易失败?正确装机流程是什么
U盘启动安装Windows11容易失败?正确装机流程是什么

详解 Windows 11 安装的三种路径风险,指导如何制作官方安装介质、正确进入启动菜单、安全清理磁盘分区以及装后验证激活状态,帮助用户避免数据丢失和安装失败。

win10怎么只关闭大版本升级保留安全更新推送
win10怎么只关闭大版本升级保留安全更新推送

想只关闭Win10大版本升级但保留安全补丁?本文区分功能更新与质量更新,详解专业版组策略配置方法,并说明家庭版限制及Win10停止支持后的应对建议。

win10笔记本外出联网如何阻止自动下载更新包
win10笔记本外出联网如何阻止自动下载更新包

Win10笔记本外出使用手机热点时,如何防止自动下载更新包消耗流量?本文详解通过设置“按流量计费的连接”和“暂停更新”来精准控制流量,对比传递优化限速效果,并解释为何不应直接禁用Windows Update服务。

Windows 10家庭版和专业版有什么区别?核心功能对比
Windows 10家庭版和专业版有什么区别?核心功能对比

想知道Windows 10家庭版和专业版怎么选?本文不聊跑分,只讲远程桌面、磁盘加密和组策略等关键功能的实际差异,帮你判断是否真的需要升级到专业版。

Win11专业版和家庭版安装流程有什么区别
Win11专业版和家庭版安装流程有什么区别

Windows 11 家庭版和专业版在安装步骤上并无本质差异,主要区别在于产品密钥激活和功能解锁。本教程指导你如何检查硬件兼容性、使用官方媒体创建工具制作安装盘,以及在安装过程中正确选择版本。同时解析安装后如何验证激活状态,以及从家庭版升级到专业版的正规路径,确保系统稳定且合规。

除了界面,Windows11和Win10还有哪些实质差异
除了界面,Windows11和Win10还有哪些实质差异

除了开始菜单的变化,Windows 11在TPM 2.0安全要求、窗口贴靠布局、驱动兼容性以及系统更新策略上与Windows 10有显著不同。本文详解两者实质差异,助你判断是否值得升级。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。