01 - 阿里云 ACK(容器服务 Kubernetes 版)
ACK 是什么?
ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云提供的托管 K8s 服务。 和自建 K8s 集群的区别:
┌──────────────────────────────────────────────────────────────┐
│ │
│ 自建 K8s ACK 托管版 │
│ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Control Plane │ │ Control Plane │ │
│ │ (你自己管理) │ │ (阿里云托管,免费) │ │
│ │ - etcd 备份 │ │ - 自动升级 │ │
│ │ - 高可用 │ │ - SLA 保障 │ │
│ │ - 证书管理 │ │ - 自动备份 │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Worker Nodes │ │ Worker Nodes │ │
│ │ (你管理) │ │ (你管理) │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────┘ACK 集群类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
| ACK 托管版 | 控制平面由阿里云托管 | 标准生产环境 |
| ACK Serverless | 无需管理节点,按 Pod 付费 | 弹性负载、Job 类任务 |
| ACK 专有版 | 完全自管理 | 定制需求高 |
ACK vs 本地 K8s 的差异
网络(CNI)
| 特性 | 本地(Docker Desktop) | ACK |
|---|---|---|
| CNI 插件 | 内置简单实现 | Terway(VPC 原生网络) |
| Pod IP | 虚拟 IP | VPC 内真实 IP |
| 性能 | 一般 | 接近原生网络性能 |
存储
| 特性 | 本地 | ACK |
|---|---|---|
| StorageClass | hostPath | 云盘 SSD、NAS、OSS |
| 动态供给 | 有限 | 完整支持 |
| 共享存储 | NFS | 阿里云 NAS (RWX) |
负载均衡
| 特性 | 本地 | ACK |
|---|---|---|
| LoadBalancer Service | localhost | 自动创建 SLB |
| Ingress | 需手动装 | 内置 ALB Ingress |
创建 ACK 集群
通过控制台
- 登录阿里云控制台 → 容器服务
- 创建集群 → 选择"ACK 托管版"
- 配置:
- 地域和可用区
- VPC 和交换机
- 节点规格(GPU 节点选择 ecs.gn6v 系列)
- 节点池配置
通过 CLI(aliyun cli / terraform)
bash
# 安装阿里云 CLI
brew install aliyun-cli
# 配置
aliyun configure
# 获取 kubeconfig
aliyun cs GET /k8s/<cluster-id>/user_config | jq -r '.config' > ~/.kube/config-ack
# 切换上下文
export KUBECONFIG=~/.kube/config-ack
kubectl get nodesACK 关键组件
cloud-controller-manager
- 管理 SLB(LoadBalancer Service 自动创建)
- 管理路由表
- 管理节点生命周期
csi-plugin(存储插件)
- 支持云盘(ReadWriteOnce)
- 支持 NAS(ReadWriteMany)—— 分布式训练数据共享
- 支持 OSS(对象存储)
terway(网络插件)
- Pod 直接获得 VPC 内 IP
- 支持 NetworkPolicy
- 高性能,接近物理网络
成本优化
- 抢占式实例:训练任务可以用,价格低至按量 1-2 折
- 弹性节点池:Cluster Autoscaler 自动扩缩节点
- Serverless(ECI):短时任务按 Pod 付费
- 预留实例券:长期使用的节点更便宜
