阿里云容器服务Kubernetes版ACK对接使用完全指南

简介: 本文系统阐述阿里云容器服务Kubernetes版(ACK)的对接使用全流程。首先解析ACK托管版、专有版与Serverless版的架构差异与选型策略,帮助用户根据业务场景做出合理决策。随后详细讲解通过控制台创建ACK托管集群的完整步骤,涵盖网络规划(Terway与Flannel对比、CIDR配置)、节点池管理等关键环节。在应用部署层面,深入介绍Deployment、StatefulSet等核心工作负载的YAML编排实践,并通过Service与ALB Ingress实现服务暴露与七层负载均衡。存储管理部分系统讲解基于CSI的云盘动态存储卷与NAS静态存储卷的使用方法。安全与权限方面,阐述RAM授

一、ACK集群类型解析与选型决策

在开始对接使用阿里云容器服务Kubernetes版(ACK)之前,首先需要理解ACK提供的不同集群类型及其适用场景。ACK目前主要提供三种集群形态:ACK托管集群、ACK专有集群和ACK Serverless集群。

1.1 ACK托管集群

ACK托管集群的控制面(包括kube-apiserver、kube-controller-manager、kube-scheduler和etcd等核心组件)完全由阿里云托管,用户只需负责Worker节点的创建与运维。托管集群又细分为Pro版和基础版:

  • Pro版:适用于企业生产与测试环境,提供99.95%的区域级SLA保障。单集群默认支持最大5000个Worker节点并可申请提高配额。Pro版收取集群管理费用,但相比自行维护Master节点的专有集群,整体TCO通常更低。
  • 基础版:仅供个人学习与测试,单账号最多创建2个集群,单集群仅支持10个Worker节点且不支持提高配额。基础版不收取集群管理费用。

每一个托管集群的管控面包含至少2个kube-apiserver实例和3个etcd实例,并部署在不同的可用区以提供可用区级别的高可用性。这种设计显著降低了用户的运维负担,让团队可以更专注于业务应用的开发和部署。

1.2 ACK专有集群

ACK专有集群的控制面需要用户自行创建并运维。根据官方公告,ACK专有集群已于2024年8月21日起停止新建(云盒场景除外),官方推荐在生产环境中使用ACK托管集群Pro版。

1.3 ACK Serverless集群

ACK Serverless集群完全基于弹性容器实例(ECI)运行,用户无需管理底层ECS服务器,只需提供打包好的镜像即可运行容器。该集群类型适用于对资源弹性要求极高、希望免于节点运维的场景。

1.4 选型建议

对于大多数企业的生产环境,ACK托管集群Pro版是最佳选择。它具有以下优势:提供了可赔付的SLA保障;具备etcd高频冷热备机制和异地容灾能力;支持从基础版或专有集群热迁移至Pro版。对于测试或个人学习场景,可选择ACK托管集群基础版。对于对资源弹性要求极高、不想管理节点的场景,ACK Serverless集群是理想选择。

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

二、ACK托管集群创建与初始化配置

选定集群类型后,接下来进入集群创建阶段。ACK托管集群支持通过多种方式创建,包括控制台、API、Terraform、SDK以及CLI等,其中控制台方式最为直观便捷。

2.1 控制台创建流程

在阿里云控制台中进入"容器服务Kubernetes版",点击"创建集群",选择"ACK托管集群"。创建过程中需要配置以下关键参数:

  • 集群名称:自定义命名,创建后仍可修改。
  • 集群规格:选择Pro版或基础版,生产环境务必选择Pro版。
  • 地域和可用区:地域一经创建不可修改。建议选择与用户和业务资源部署地域较近的地域以降低网络延迟,同时配置至少两个不同可用区以保证高可用。
  • Kubernetes版本:仅支持创建最近三个次要版本,建议使用当前最新版本以获得更好的稳定性、性能和安全性更新。
  • 自动升级:开启后可在维护窗口期内自动升级集群控制面和节点池,有效降低版本维护负担。
  • 专有网络(VPC)和交换机:可选择自动创建或使用已有VPC。为保障高可用,建议选择2个及以上不同可用区。

2.2 网络规划:Terway与Flannel对比

ACK提供了两种CNI网络插件:Terway和Flannel。Terway是基于阿里云弹性网卡(ENI)资源的云原生容器网络方案,提供更优的网络性能和更丰富的网络策略能力。Flannel则是社区标准的Overlay网络方案,配置简单但性能相对较弱。对于生产环境,推荐使用Terway以获得更好的网络性能和可观测性。

2.3 节点池管理

节点池是具有相同属性(例如实例规格、操作系统、标签和污点等)的一组节点的逻辑集合。一个集群中可以创建多个不同配置和类型的节点池。节点池的配置包含节点的属性,例如节点实例规格、计费类型、可用区(vSwitch)、操作系统镜像、CPU架构、标签和污点等。

通过节点池,可以实现:

  • 分组管理:将不同配置的节点分组管理,例如CPU节点池和GPU节点池。
  • 弹性伸缩:节点池支持手动扩缩容和自动弹性伸缩。
  • 混合云部署:ACK托管集群Pro版支持创建混合云节点池,将已有的混合云节点加入集群。

三、应用部署与服务暴露

3.1 核心工作负载部署

ACK集群完全兼容Kubernetes原生API,可以使用Deployment、StatefulSet、DaemonSet等标准工作负载资源来部署应用。以下是一个Nginx Deployment的YAML示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25
        ports:
        - containerPort: 80
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"

对于需要持久化存储的有状态应用,应使用StatefulSet配合持久化存储卷。

3.2 Service:集群内服务发现与四层负载均衡

Service是Kubernetes中实现服务发现和四层负载均衡的核心资源。ACK支持ClusterIP、NodePort和LoadBalancer三种Service类型。其中LoadBalancer类型会自动创建阿里云负载均衡实例,将服务暴露到公网或内网。

3.3 ALB Ingress:七层负载均衡

Ingress是集群内Service对外暴露七层(HTTP/HTTPS)的访问接入点,用于为集群中的多个Service提供统一的入口。ACK推荐使用ALB Ingress来实现七层负载均衡。

创建ACK托管集群时,在Ingress参数配置区域,选择安装ALB Ingress。ALB Ingress提供了以下核心能力:

  • 支持通过域名或访问路径路由到不同的Service
  • 支持混合挂载:将K8s集群内Pod和集群外ECS实例混合挂载到同一后端服务器组
  • 支持跨地域挂载和本地IDC挂载

以下是一个ALB Ingress的配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "alb"
spec:
  rules:
  - host: app.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web-service
            port:
              number: 80

四、存储管理

Kubernetes应用通常需要持久化存储来保存数据。ACK通过标准的容器存储接口(CSI),集成了多种阿里云存储服务(如云盘、OSS、NAS、CPFS等),并兼容Kubernetes原生存储机制,为不同业务场景提供存储解决方案。

4.1 存储方案选型

ACK的存储方案分为两类:

  • Kubernetes原生存储卷:包括emptyDir、HostPath、ConfigMap/Secret等,生命周期通常与Pod绑定,不适用于需要持久化保存应用数据的场景。
  • 阿里云持久化存储卷:通过CSI组件集成,为工作负载提供稳定、可靠的数据持久化能力。生命周期独立于Pod,可用于有状态应用。

4.2 云盘动态存储卷

云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。ACK支持使用CSI插件创建云盘动态存储卷。

动态存储卷的配置需要先创建StorageClass,然后通过PVC(PersistentVolumeClaim)动态申请存储资源。以下是一个StorageClass和PVC的配置示例:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-disk-ssd
provisioner: diskplugin.csi.alibabacloud.com
parameters:
  type: cloud_ssd
  regionId: cn-hangzhou
  zoneId: cn-hangzhou-g
reclaimPolicy: Delete
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: disk-pvc
  namespace: default
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: alicloud-disk-ssd
  resources:
    requests:
      storage: 20Gi

4.3 NAS静态存储卷

NAS存储卷提供数据持久化(Pod重建后数据不丢失)和数据共享(多Pod同时读写)能力。ACK支持将已有的NAS文件系统,以静态存储卷的方式挂载给工作负载使用。静态存储卷需预先创建PV来代表已有的存储资源(如NAS文件系统)。

五、安全与权限管理

5.1 RAM授权与RBAC授权的双层体系

ACK的权限管理采用双层体系:RAM授权和RBAC授权。

  • RAM授权:控制用户对ACK产品的操作权限,例如创建集群、查看集群列表等。系统策略如AliyunCSFullAccess、AliyunCSReadOnlyAccess等可满足大部分场景。
  • RBAC授权:控制用户在集群内部对Kubernetes资源的操作权限,例如创建Pod、删除Service等。RBAC授权通过Kubernetes原生的Role、ClusterRole、RoleBinding和ClusterRoleBinding资源来实现。

如果某个用户需要访问ACK集群,无需为用户授予访问其他云产品资源的权限,保证用户访问云产品资源权限最小化。

5.2 ack-ram-authenticator Webhook认证

ack-ram-authenticator组件是面向ACK托管集群的认证插件,基于Kubernetes原生Webhook Token认证方式,实现通过RAM完成集群API Server的请求认证。同时,该组件通过CRD形式提供RAM身份和RBAC权限的映射关系,帮您更灵活地配置RBAC鉴权。

该认证方式的主要优势包括:

  • 适配企业通过云SSO场景,提供灵活可控的数据面RBAC授权
  • 在角色SSO对接场景下,API Server审计日志中包含企业IDP中的身份信息,有效支持对扮演同一角色的不同IDP用户的行为审计
  • 当企业员工离职时被删除所持有的RAM用户或RAM角色后,其在集群中的RBAC权限将自动失效

5.3 安全组配置

ACK集群使用安全组来约束控制面节点和Worker节点之间的网络流量。安全组还用于控制节点、VPC资源和外部IP地址之间的流量。创建集群或节点池时,系统会默认自动为您分配一个安全组,您也可以指定关联已有安全组。

六、可观测性体系建设

6.1 日志采集

在ACK集群中,通过部署日志采集组件(Logtail),可以将各类日志数据安全传输至日志服务SLS进行存储和分析。ACK通过AliyunLogConfig CRD实现与SLS采集配置的关联。日志采集支持容器标准输出、容器内文件日志以及节点日志等多种来源。

6.2 监控告警

ACK集成了阿里云托管版Prometheus监控服务。接入阿里云容器服务ACK后,云监控会创建对应的SLS Store和Prometheus实例用于存储对应可观测数据。通过Prometheus,可以采集集群节点、Pod、容器等各个层面的监控指标,并配置告警规则。

ACK还支持与Grafana集成,实现监控数据的可视化展示。

七、生产级运维与优化

7.1 集群自动升级

ACK支持集群的自动升级能力,保持集群控制面和节点池的周期性自动升级。集群维护窗口是一个为ACK集群预先设定的、可重复的特定时间段。在此期间,ACK将执行集群自动化运维操作,如集群自动升级、CVE漏洞自动修复等。开启自动升级后,可有效降低版本维护负担。

7.2 弹性伸缩

ACK提供了完善的弹性伸缩方案,包括工作负载伸缩和节点伸缩。

  • 工作负载伸缩:支持社区标准的HPA(Horizontal Pod Autoscaler)、VPA(Vertical Pod Autoscaler)等能力。还提供了类似CronHPA的定时伸缩能力。
  • 节点伸缩:通过Cluster Autoscaler实现节点级别的自动扩缩容。

ACK Pro版集群支持为应用申请GPU显存和算力,能够帮助您更精细化的使用GPU的显存和算力资源。共享GPU调度支持仅申请显存和同时申请显存和算力两种任务。

7.3 CI/CD流水线搭建

ACK与阿里云云效、容器镜像服务ACR等产品深度集成,支持构建完整的容器CI/CD流水线。

典型的CI/CD流程如下:

  1. 开发人员更新项目代码后,云效流水线自动触发镜像构建
  2. 构建完成的镜像推送到容器镜像服务ACR
  3. 流水线触发部署,将镜像拉取到测试集群进行测试
  4. 测试通过并经过审核批准后,将镜像拉取到生产集群完成部署

在多账号多集群的环境下,各个账号负责不同的业务和功能需求,同时在特定账号下创建对应职能的容器集群,实现集群间的完全隔离。

八、最佳实践与注意事项

8.1 生产环境集群配置建议

  • 选择Pro版:生产环境务必选择ACK托管集群Pro版,以获得SLA保障和高可用性。
  • 多可用区部署:配置至少两个不同可用区以保证集群的高可用性。
  • 启用自动升级:开启集群自动升级,在维护窗口期内自动完成版本更新。
  • 使用Terway网络:生产环境推荐使用Terway网络插件以获得更好的网络性能。

8.2 安全最佳实践

  • 最小权限原则:通过RAM和RBAC的双层授权体系,确保用户仅拥有完成工作所需的最小权限。
  • 启用Webhook认证:使用ack-ram-authenticator组件为集群API Server提供更安全的身份验证。
  • 安全组配置:合理配置安全组规则,控制节点和Pod的网络访问。

8.3 成本优化建议

  • 合理规划节点规格:根据工作负载的实际资源需求选择合适的ECS实例规格,避免资源浪费。
  • 使用弹性伸缩:通过HPA和Cluster Autoscaler实现资源的按需使用,降低闲置成本。
  • 选择合适的存储类型:根据业务场景选择云盘、NAS或OSS,平衡性能与成本。

九、常见问答

问1:ACK托管集群Pro版和基础版的主要区别是什么?

答:Pro版提供99.95%的区域级SLA保障,单集群默认支持最大5000个Worker节点,适用于企业生产环境;基础版仅供个人学习与测试,单账号最多创建2个集群,单集群仅支持10个Worker节点。Pro版收取集群管理费用,基础版不收取。

问2:如何在ACK集群中暴露一个Web应用给公网访问?

答:可以通过两种方式:一是创建LoadBalancer类型的Service,自动创建阿里云负载均衡实例暴露服务;二是安装ALB Ingress Controller,通过Ingress资源配置七层转发规则,将流量路由到后端Service。生产环境推荐使用ALB Ingress方式。

问3:ACK集群中的存储卷如何实现数据持久化?

答:ACK通过CSI插件集成了阿里云云盘、NAS、OSS等存储服务。对于云盘,可以通过StorageClass和PVC实现动态存储卷的自动创建和挂载;对于NAS,可以通过预先创建PV和PVC的方式实现静态存储卷的挂载。存储卷的生命周期独立于Pod,即使Pod被删除,数据依然保留。

问4:如何管理ACK集群的用户权限?

答:ACK采用RAM授权和RBAC授权的双层体系。RAM授权控制用户对ACK产品的操作权限;RBAC授权控制用户在集群内部对Kubernetes资源的操作权限。建议启用ack-ram-authenticator组件,实现基于RAM的Webhook认证。

问5:ACK集群如何进行版本升级?

答:ACK支持手动升级和自动升级两种方式。开启自动升级后,ACK会在设定的维护窗口期内自动完成集群控制面和节点池的版本升级。建议生产环境开启自动升级以降低版本维护负担。

问6:ACK如何与CI/CD流水线集成?

答:ACK与阿里云云效、容器镜像服务ACR深度集成。典型的流程是:代码提交触发云效流水线构建镜像,推送到ACR,然后通过流水线自动部署到ACK集群。也可以使用Jenkins、GitLab等第三方工具与ACK集成。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
存储 Linux 数据安全/隐私保护
自建私人云盘|OpenList 保姆级部署,吊打各大网盘
OpenList是开源网盘聚合工具,支持阿里云盘、百度网盘、夸克等数十种存储服务。一键Docker部署,统一管理多网盘文件,视频直链播放不耗服务器带宽,隐私安全有保障。(239字)
|
1月前
|
人工智能 缓存 测试技术
Harness 效应:编排设计如何影响企业级 Agent 的 Token 成本
论文《The Harness Effect》指出:企业级Agent成本主要由编排层(Harness)决定,而非模型单价。Harness通过优化上下文组织、历史压缩、工具调用与重试机制,将单任务Token消耗降低38%(14.2k→8.8k),成本下降33%–61%,CPM提升68%。优化本质是将成本问题从“选模型”转向“精设计”。
205 0
Harness 效应:编排设计如何影响企业级 Agent 的 Token 成本
|
2月前
|
存储 Kubernetes 监控
阿里云容器服务Kubernetes版(ACK)对接使用完全指南
本文提供了一份完整的阿里云容器服务Kubernetes版(ACK)对接使用指南。首先解析ACK托管版、专有版与Serverless版的架构差异与选型策略,帮助用户根据业务场景做出合理决策。随后详细讲解通过控制台和Terraform创建ACK托管集群的完整流程,涵盖网络规划(Terway与Flannel对比、CIDR配置)、节点池管理等关键环节。在应用部署层面,深入介绍Deployment、StatefulSet等核心工作负载的YAML编排实践,并通过Service与ALB Ingress实现服务暴露与七层负载均衡。存储管理部分系统讲解基于CSI的云盘动态存储卷与ossfs 2.0的使用方法。可
|
2月前
|
人工智能 缓存 监控
构建企业级 AI Agent 工程化实践:从原型到生产环境的跨越
本文深入探讨企业级AI Agent从原型到生产的工程化实践,直面LLM概率性与业务确定性的根本矛盾,提出“LLM负责感知推理、代码保障逻辑执行”的混合架构。系统阐述可观测性、安全护栏、性能优化、数据管理四大工程支柱,并结合IT运维、金融合规等实战场景,提供可落地的LLMOps方法论。
|
2月前
|
运维 监控 Kubernetes
阿里云云原生DevOps:基于ACK构建企业级CI/CD流水线
企业上云后,如何高效地进行应用交付成为核心挑战。本文分享基于阿里云容器服务ACK和云效DevOps平台构建企业级CI/CD流水线的完整实践,涵盖镜像构建、自动部署、灰度发布、安全扫描和成本优化5个核心环节。以一个日活百万的在线教育平台为例,将发布频率从每周1次提升到每天10次,部署成功率从85%提升到99.5%,年节省服务器成本约48万元。
|
2月前
|
人工智能 API 调度
为什么很多 AI Agent 一上线就开始烧钱?我在这个开源项目里看到了答案
ClawRouter 是一个面向 AI Agent 的开源本地路由层,它关注的不只是多模型调用,而是模型选择、成本控制、fallback、Token 压缩和 Agent 运行时调度。
246 0
|
4月前
|
自然语言处理 安全 测试技术
大模型+超自动化:实在Agent从“句意理解”到“跨系统闭环执行”的技术链路
本文剖析实在Agent“六层闭环技术架构”,直击企业级智能体落地核心痛点——“认知-执行断层”。通过垂直大模型+全栈超自动化深度融合,实现从自然语言指令到跨系统业务闭环执行的端到端自主化,兼具国产化适配、强合规与高稳定性,为AI工程化提供可落地的技术范式。
|
2月前
|
Kubernetes Ubuntu 网络协议
|
5月前
|
存储 调度 异构计算
推理平台全景
本次分享介绍了常见的开源推理平台项目: NVIDIA Dynamo, llm-d, Kthena, RoleBasedGroup, OME, AiBrix, KServe
995 8
推理平台全景