阿里云容器计算服务ACS深度对接与使用完全指南

简介: 本文全面解析阿里云容器计算服务ACS的架构原理、核心功能与实操方法。ACS作为ACK Serverless的升级版,依托神龙架构提供Serverless形态的Kubernetes容器算力,免去集群和节点运维负担。文章从服务开通与角色授权入手,详解控制台与OpenAPI创建集群的完整流程,深入剖析网络三层架构设计、存储CSI插件集成、多种计算类型与算力质量的选择策略。通过YAML示例演示如何精细化指定Pod算力规格,涵盖通用型、性能型、GPU型等实例类型。同时提供kubectl连接集群、RAM与RBAC双层授权体系、HPA/CronHPA/AHPA弹性伸缩配置、日志采集与监控告警设置等运维实操。

1. 初识阿里云容器计算服务ACS

阿里云容器计算服务(Alibaba Cloud Container Compute Service,简称ACS)是阿里云推出的新一代Serverless容器计算平台,以Kubernetes为使用界面,提供弹性、免运维的容器算力资源。从产品演进来看,ACS是ACK Serverless集群(原ASK)的全面升级版本,在成本效益、易用性和弹性能力上均实现了显著提升。

相比传统的ACK Pro集群,ACS完全免去了集群控制面的运维负担:您无需关心节点规格选择、节点创建和节点管理,只需要按需申请Pod资源,ACS会自动分配算力,并按秒级计费。ACS依托于阿里云神龙架构,实现了容器和资源的一体化管理,提供了按需弹性和资源预留两种资源使用方式。

ACS的产品定位可以概括为三个核心特征:第一,以Kubernetes为使用界面,完全兼容Kubernetes API和生态工具;第二,Serverless形态的算力交付,用户无需关注底层节点及集群的运维管理;第三,提供多样化的计算类型和算力质量,适配不同类型的业务负载。

需要先登录阿里云控制台,点击:阿里云控制台

2. ACS与ACK的核心区别

理解ACS与ACK的区别是正确选型的前提。ACS是ACK Serverless集群的升级版本,基于ACK Serverless集群和ACK演进K8s层能力,优化了Serverless K8s的编排调度灵活度和兼容使用体验。

在控制面层面,ACS集群的控制面由ACS创建并托管,您无需设计集群规模、选择节点规格、创建节点或管理节点。而ACK Pro集群的控制面由ACK创建并托管,您需要灵活设计集群规模、选择节点规格,并在部署Pod前先创建节点。

在计费模式上,ACS不收取集群管理费,Pod按实例类型和分配的vCPU、内存或GPU资源进行秒级计费。ACK Pro集群则收取集群管理费,节点按规格和运行时长计费。ACS的CPU资源从0.25 vCPU和0.5 GiB内存起配,以0.5 vCPU和1 GiB为步长递增,GPU资源从1个GPU起配,真正做到按需申请、按量付费。

在运维复杂度上,ACS托管了Kubernetes核心系统组件并自动更新集群补丁版本,大幅降低了运维负担。ACS集群也是ACK的一种Serverless K8s集群类型,在ACK控制台上可以看到相关ACS集群,并且可以对ACS集群做集群RBAC授权管理以及KubeConfig凭证管理。

3. 服务开通与角色授权

首次使用ACS时,需要完成服务开通和授权两个关键步骤。

步骤一:开通容器计算服务ACS

登录容器计算服务ACS产品控制台,首次登录会跳转到开通引导页面。单击\"前往开通\",在新页面中创建服务关联角色,然后单击\"立即购买\"完成开通。

步骤二:角色授权

开通完成后,返回控制台并刷新页面,单击\"前往授权\",为ACS授权访问其他云资源的权限。当且仅当该角色被正确授予后,容器计算服务才能正常地调用相关服务(ECS、OSS、NAS、CPFS、SLB等),执行创建集群、保存日志等操作。阿里云账号(主账号)和拥有管理权限的RAM用户都可以授权系统默认角色。对于RAM用户,还需要确保已经授予了与ACS相关的系统策略,例如AliyunCSFullAccess,以便拥有完整的集群管理权限。

4. 创建ACS集群

完成开通与授权后,即可开始创建ACS集群。集群创建可以通过控制台和OpenAPI两种方式完成。

4.1 控制台创建集群

登录容器计算服务控制台,在左侧导航栏选择\"集群列表\",单击页面左上角的\"创建集群\"。在创建集群页面,需要完成集群配置、网络配置、组件配置和高级选项配置。

集群配置:填写集群名称,选择集群所在的地域和Kubernetes版本。目前ACS已在多个地域开服,具体可参考官方开服地域文档。

网络配置:ACS集群仅支持专有网络(VPC),支持自动创建和使用已有VPC两种方式。选择可用区或交换机时,建议选择多个以确保集群的高可用。ACS会在所选可用区下分别创建一个对应的虚拟节点。配置SNAT决定了VPC内的实例能否访问公网,如果Pod需要从公网拉取容器镜像,则需要配置NAT网关。为了降低成本,更好的做法是将容器镜像上传到与ACS集群同一地域的阿里云容器镜像服务(ACR)中,然后通过内网VPC地址拉取镜像。

安全组与API Server访问:选择自动创建普通安全组或企业级安全组。API Server访问配置默认为API Server创建一个按量付费的私网CLB实例。

4.2 通过OpenAPI创建集群

以下是通过OpenAPI调用创建集群时的参数配置示例:

{\n  \"cluster_type\": \"ManagedKubernetes\",\n  \"profile\": \"Serverless\",\n  \"name\": \"my-acs-cluster\",\n  \"region_id\": \"cn-hangzhou\",\n  \"zone_ids\": [\"cn-hangzhou-g\", \"cn-hangzhou-h\"],\n  \"vpc_id\": \"vpc-xxxxxx\",\n  \"vswitch_ids\": [\"vsw-xxxxxx1\", \"vsw-xxxxxx2\"],\n  \"service_cidr\": \"172.19.0.0/20\",\n  \"snat_entry\": true,\n  \"security_group_id\": \"sg-xxxxxx\"\n}

集群创建时间通常需要5到10分钟。

5. 网络架构深度解析

ACS集群的网络架构分为三个层次:

VPC:作为最外层的网络边界,定义了整体IP地址空间。

vSwitch:作为可用区级子网,Pod的IP地址从Pod专用vSwitch中分配。

Service CIDR:专门为Kubernetes Service预留的独立IP范围,仅在集群内部生效。

规划时必须遵守三个核心约束:vSwitch的CIDR必须是VPC CIDR的子集;Service CIDR不能与任何vSwitch CIDR重叠;Service CIDR在集群创建后不可修改。

对于跨地域或多集群场景,不同集群的Service CIDR可以重叠,但需要注意Pod IP无法直接访问另一个集群的Service,只有Pod之间的流量可以跨越集群边界。

在Service层面,ACS采用Service方式为一组容器提供固定的访问入口,并对这一组容器做负载均衡。创建Service对象时,ACS会分配一个相对固定的Service IP地址。ACS支持ClusterIP(集群内访问)、LoadBalancer(通过阿里云负载均衡器对外暴露服务)等多种网络模式。

6. 计算类型与算力规格

ACS面向不同业务场景,定义了高性价比的Serverless容器算力类型和算力质量。ACS当前提供了多种计算类型和算力质量,不同的实例类型在资源供给上有所区别,以适应不同的业务场景。

6.1 计算类型

通用型:适用于微服务、Web应用等常规在线业务,平衡了性能与成本。

性能型:适用于对计算性能有更高要求的场景,提供更强的CPU和内存配置。

GPU加速型:适用于AI推理、模型训练等GPU计算场景。

GPU-HPN型:适用于高性能网络场景的GPU计算。

6.2 算力质量

Default(默认):提供标准的算力质量保证,适用于大多数生产场景。

BestEffort:成本优先的算力质量,适用于对延迟不敏感、吞吐密集型的工作负载,如Spark、Presto、AI训练等。使用BestEffort实例时,为应对实例被抢占回收时导致的业务中断风险,可安装acs-instance-helper组件并添加注解,实现待释放Pod的自动副本轮转和优雅下线。

6.3 通过YAML指定算力规格

以下YAML示例展示了如何精细化指定Pod的算力规格:

apiVersion: v1\nkind: Pod\nmetadata:\n  name: acs-demo-pod\n  annotations:\n    alibabacloud.com/compute-class: \"general-purpose\"\nspec:\n  containers:\n  - name: nginx\n    image: nginx:latest\n    resources:\n      requests:\n        cpu: \"2\"\n        memory: \"4Gi\"\n      limits:\n        cpu: \"2\"\n        memory: \"4Gi\"

通过alibabacloud.com/compute-class注解可以指定计算类型,通过resources字段可以精确控制CPU和内存的申请与限制。

7. 存储集成与管理

ACS的容器存储功能基于Kubernetes容器存储接口(CSI),融合了块存储、NAS、OSS等阿里云存储服务,并兼容Kubernetes原生的EmptyDir、ConfigMap等存储。

7.1 CSI插件

CSI是当前Kubernetes社区推荐的存储插件实现方案,ACS提供了csi-provisioner作为ACS集群的CSI插件,支持基于阿里云存储资源的存储卷。在存储卷的挂载、卸载、创建、删除等操作上,CSI插件需要您授予其访问阿里云其他产品资源的权限。

7.2 支持的存储类型

块存储(云盘):非共享、低时延、高可靠的数据块级随机存储,适合数据库、中间件等高IO、低延时场景。支持ESSD Entry、ESSD AutoPL、ESSD、SSD、高效云盘等多种类型。云盘为非共享存储,仅支持挂载到一个Pod上。

NAS:可共享访问、弹性扩展、高可靠、高性能的分布式文件系统,提供高吞吐和高IOPS,支持文件的随机读写和在线修改。适用于共享数据场景。

OSS:对象存储服务,适用于大规模非结构化数据的存储与访问。

7.3 使用PVC挂载存储

以下示例展示了如何通过StorageClass和PVC挂载NAS存储:

apiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n  name: nas-llm-sc\nmountOptions:\n- nolock,tcp,noresvport\n- vers=3\nparameters:\n  volumeAs: filesystem\n  fileSystemType: standard\n  storageType: Performance\n  regionId: cn-hangzhou\n  zoneId: cn-hangzhou-g\n  vpcId: \"vpc-xxxxxx\"\n  vSwitchId: \"vsw-xxxxxx\"\n  accessGroupName: DEFAULT_VPC_GROUP_NAME\n  deleteVolume: \"false\"\nprovisioner: nasplugin.csi.alibabacloud.com\n---\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: nas-llm-pvc\nspec:\n  accessModes:\n  - ReadWriteMany\n  storageClassName: nas-llm-sc\n  resources:\n    requests:\n      storage: 30Gi

8. 部署应用

ACS支持通过容器镜像、编排YAML模板和kubectl命令行等多种方式创建无状态应用。

8.1 通过控制台部署Nginx应用

登录容器计算服务控制台,在集群列表页面单击目标集群名称,然后在左侧导航栏选择\"工作负载 > 无状态\"。单击\"使用镜像创建\",配置应用基本信息、容器配置和高级配置。

在容器配置中,选择Nginx镜像并配置相关参数。在高级配置中,可以创建Service对外暴露服务:设置服务名称为http,服务端口80,容器端口80。在类型中选择\"负载均衡\"和\"公网访问\",选择新建SLB。也可创建Ingress路由实现七层负载均衡。

8.2 通过YAML部署应用

以下是一个部署Nginx Deployment并通过Service对外暴露的完整YAML示例:

apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-deployment\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: nginx\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      containers:\n      - name: nginx\n        image: nginx:latest\n        ports:\n        - containerPort: 80\n        resources:\n          requests:\n            cpu: \"0.5\"\n            memory: \"1Gi\"\n          limits:\n            cpu: \"0.5\"\n            memory: \"1Gi\"\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nginx-service\nspec:\n  type: LoadBalancer\n  selector:\n    app: nginx\n  ports:\n  - port: 80\n    targetPort: 80

9. 连接集群与kubectl使用

除了通过容器服务控制台管理集群外,还可以通过Kubernetes命令行工具kubectl来管理集群以及应用。

9.1 获取kubeconfig

ACS集群提供了两种集群凭证(即kubeconfig文件),分别用于公网访问和内网访问。登录ACS控制台,在左侧导航栏单击\"集群\",在集群信息页面单击\"连接信息\"页签。可以选择临时或长期KubeConfig,对于临时KubeConfig需合理设置有效期。选择公网访问或内网访问页签,单击复制,将复制的KubeConfig内容粘贴至客户端的$HOME/.kube/config文件中。

对于无需长期连接集群API Server的访问场景,建议优先使用生成临时的kubeconfig,降低kubeconfig凭据泄露后的安全风险。

9.2 使用kubectl管理集群

配置好kubeconfig后,即可使用kubectl命令管理ACS集群:

# 查看集群节点\nkubectl get nodes\n\n# 查看所有命名空间下的Pod\nkubectl get pods --all-namespaces\n\n# 查看集群事件\nkubectl get events --all-namespaces\n\n# 部署应用\nkubectl apply -f deployment.yaml\n\n# 查看部署状态\nkubectl rollout status deployment/nginx-deployment

10. 权限管理体系

容器计算服务ACS的授权体系包含对基础资源层的RAM授权和对ACS集群层的RBAC授权两部分。

10.1 RAM授权

RAM授权包括对集群的运维操作权限。因为ACS集群是ACK的一种Serverless K8s集群类型,对ACS集群的运维操作需要通过ACK OpenAPI执行,所以需要获取ACK产品及其所依赖的阿里云产品的OpenAPI操作权限。ACS系统策略相对粗粒度,如果无法满足细粒度授权需求,可以创建自定义授权策略。

10.2 RBAC授权

RBAC授权对应的是运行于ACS集群中Kubernetes应用的运维操作,需要获取ACS集群及其命名空间的操作权限。ACS提供了五个预定义的RBAC角色。当RAM用户或RAM角色需要操作指定集群内K8s资源时(例如获取集群Pod信息),需要授予相应的RBAC权限。

当前ACS授权管理只支持自定义ClusterRole角色与集群内RBAC权限的绑定,不支持自定义Role角色与集群内RBAC权限的绑定。

授权流程为:首先完成RAM授权,然后通过ACS控制台的授权页面为RAM用户或RAM角色授予RBAC权限。

11. 弹性伸缩配置

弹性伸缩是ACS上被广泛采用的功能,典型的场景包含在线业务弹性、定时周期性负载变化等。ACS支持HPA、CronHPA和AHPA多种弹性方式。

11.1 水平Pod自动伸缩(HPA)

HPA根据CPU使用率、内存使用率等指标自动调整Pod的副本数。在创建应用的高级配置页面中,开启\"指标伸缩\",设置伸缩条件和配置。支持CPU和内存两种指标类型。

以下是通过YAML配置HPA的示例:

apiVersion: autoscaling/v2\nkind: HorizontalPodAutoscaler\nmetadata:\n  name: nginx-hpa\nspec:\n  scaleTargetRef:\n    apiVersion: apps/v1\n    kind: Deployment\n    name: nginx-deployment\n  minReplicas: 2\n  maxReplicas: 10\n  metrics:\n  - type: Resource\n    resource:\n      name: cpu\n      target:\n        type: Utilization\n        averageUtilization: 70

11.2 定时伸缩(CronHPA)

CronHPA适用于有周期性规律的业务场景,可以在指定时间自动调整副本数。CronHPA可以兼容HPA策略共同作用,实现复杂场景下的工作负载伸缩。

11.3 智能弹性伸缩(AHPA)

AHPA可根据历史数据预测业务波动,支持快速扩容,确保业务稳定运行。智能弹性伸缩方案AHPA可根据历史数据预测业务波动,支持每分钟7000个Pod的快速扩容。

12. 日志采集与监控

12.1 日志采集

容器计算服务ACS集成了阿里云日志服务SLS。可在创建ACS集群时启用日志服务,快速采集集群内的容器日志,包括容器的标准输出以及容器内的文本文件。

ACS支持通过AliyunLogConfig CRD方式采集应用日志。在logtailConfig配置中可以增加advanced配置来匹配特定的Pod或容器。ACS还支持收集集群控制面组件日志,将日志从ACS控制面采集到您账号中日志服务SLS的Log Project中。

12.2 监控告警

您可以通过阿里云Prometheus监控查看预先配置的监控大盘和监控性能指标。容器智能运维平台提供一键故障诊断能力,包括Pod诊断、Service诊断、Ingress诊断,可以辅助您定位集群中出现的问题。容器智能运维平台还提供集群巡检功能,可以扫描集群运行状况,发现集群中存在的潜在风险,例如云资源配额余量、Kubernetes集群关键资源水位等。

13. 服务发现与DNS配置

ACS集群默认不会部署DNS服务,需要在创建集群时选中CoreDNS。CoreDNS通过kube-dns的服务名暴露DNS服务。ACS集群使用CoreDNS负责集群的服务发现。以下命令可以查看kube-dns的服务详情:

kubectl get svc kube-dns -n kube-system

对于已创建的ACS集群,启用DNS服务发现方案仅对新建的容器Pod生效。如果需要使用自建DNS服务来解析镜像仓库以及其他应用的域名,可以通过在Pod metadata中添加Annotation来指定ACS Pod使用自定义DNS。

14. CI/CD集成

ACS可以无缝集成主流CI/CD工具,实现自动化部署。

14.1 GitLab Runner集成

在ACS集群中使用GitLab Runner可以构建完整的CI/CD环境。GitLab Runner提供了Kubernetes执行器,可以在ACS集群中运行CI/CD作业。CI任务作为典型的时间周期型算力使用场景,完美契合ACS按需使用和快速弹性的特性。

14.2 Knative与ACS算力

Knative Service支持配置使用ACS算力,通过其多样化的计算类型和算力质量,满足不同业务场景的负载需求并优化成本。可以在Knative Service的Pod模板中添加标签,以声明使用ACS算力。

15. 成本优化最佳实践

利用内网拉取镜像:将容器镜像上传到与ACS集群同一地域的ACR中,通过内网VPC地址拉取镜像,避免公网流量费用。

选择合适的算力类型:对于延迟不敏感的离线任务,使用BestEffort算力质量可以显著降低成本。

合理设置资源请求:CPU资源从0.25 vCPU和0.5 GiB内存起配,按实际需求申请资源,避免资源浪费。

使用节省计划:对于波动性工作负载,基于每日承诺消费的节省计划可以进一步降低成本。

配置生命周期管理:合理配置Pod的生命周期策略,及时回收闲置资源。

16. 安全加固建议

最小权限原则:使用RAM子账号进行日常运维,授予最小必要权限。

临时kubeconfig:对于临时访问场景,使用临时kubeconfig并设置合理的有效期。

API Server访问控制:配置API Server的访问控制策略,限制公网访问来源。

安全组配置:合理配置安全组规则,仅开放必要的端口。

Pod安全策略:为Pod配置安全策略,验证Pod部署和更新的请求是否安全。

17. 常见问题解答

问:ACS和ACK Serverless是什么关系?

答:ACS是ACK Serverless集群的全面升级版本,在成本效益、易用性和弹性能力上均实现了显著提升。ACS集群也是ACK的一种Serverless K8s集群类型,在ACK控制台上可以看到相关ACS集群。

问:ACS集群创建后,Service CIDR可以修改吗?

答:不可以。Service CIDR在集群创建后不可修改,因此在集群创建前需要做好网络规划。

问:ACS支持哪些存储类型?

答:ACS基于CSI插件支持块存储(云盘)、NAS、OSS等阿里云存储服务,并兼容Kubernetes原生的EmptyDir、ConfigMap等存储。

问:如何实现ACS集群的弹性伸缩?

答:ACS支持HPA(基于CPU/内存指标)、CronHPA(定时伸缩)和AHPA(基于历史数据预测的智能弹性)三种方式,可以根据业务场景选择合适的弹性策略。

问:ACS的计费方式是怎样的?

答:ACS不收取集群管理费,Pod按实例类型和分配的vCPU、内存或GPU资源进行秒级计费,真正做到按需使用、按量付费。

问:如何使用kubectl连接ACS集群?

答:从ACS控制台获取集群的kubeconfig文件(支持公网和内网两种访问方式),配置到本地$HOME/.kube/config文件中,即可使用kubectl命令管理集群。

相关文章
|
3天前
|
人工智能 弹性计算 运维
|
1天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
25天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
10天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
19天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
15天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
503 127
|
9天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
10天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
525 1
|
18天前
|
人工智能 弹性计算 API
什么是 AlibabaCloud Agent Toolkit
Alibaba Cloud Agent Toolkit 是面向AI Agent的阿里云智能工具套件,集成OpenAPI、Terraform、CLI与文档能力,提供MCP插件、场景化Skills及执行审计机制,助AI准确查API、生成代码、规划架构、校验部署,实现安全、可靠、可追溯的云上智能运维。
457 2