阿里云容器服务 ACK 集群部署与配置指南
阿里云容器服务 Kubernetes 版(ACK)是阿里云托管的 Kubernetes 平台,适合承载微服务、Web 应用、AI 推理、批处理任务和多云容器化业务。相比自建 Kubernetes,ACK 可以减少控制面维护、版本升级、集群扩缩容和基础监控的运维负担,让团队把更多精力放在应用交付上。
本文面向准备使用阿里云国际版部署容器平台的团队,覆盖从前期规划到首个应用上线的完整流程。
一、部署前的规划
1.1 选择集群类型
ACK 常见部署形态包括:
| 类型 | 适用场景 | 特点 | |------|----------|------| | ACK 托管版 | 大多数生产与测试环境 | 控制面由阿里云托管,运维成本低 | | ACK Serverless | 弹性任务、低运维团队 | 无需管理节点,按 Pod 资源计费 | | ACK 专有版 | 对控制面隔离要求高的企业 | 控制面独占,管理复杂度更高 |
如果没有特殊隔离要求,建议优先选择 ACK 托管版。它在稳定性、成本和运维复杂度之间更均衡。
1.2 网络与区域规划
创建集群前先确定以下内容:
- 地域 Region:靠近用户或业务系统,例如新加坡、香港、日本、德国、美国等。
- VPC 网段:避免与办公室、IDC、其他云厂商的私网网段冲突。
- Pod CIDR / Service CIDR:预留足够地址空间,后续扩容会用到。
- 多可用区:生产环境建议节点分布在至少两个可用区。
- 公网访问策略:默认不建议开放 Kubernetes API Server 到全网。
1.3 权限与账号准备
建议使用 RAM 用户或 RAM 角色进行日常操作,而不是主账号:
- 创建 RAM 用户或角色。
- 授予 ACK、ECS、VPC、SLB、ACR、日志服务等必要权限。
- 开启 MFA 多因素认证。
- 为 CI/CD 系统单独创建最小权限凭证。
二、创建 ACK 集群
2.1 创建 VPC 与交换机
在阿里云控制台进入 VPC:
- 创建 VPC,选择合适的私网网段,例如
10.10.0.0/16。 - 在两个或三个可用区分别创建交换机。
- 为未来的数据库、缓存、容器节点预留独立子网。
生产环境建议将容器节点和数据库资源放在不同交换机或安全组中,便于权限隔离。
2.2 创建 Kubernetes 集群
进入容器服务 ACK 控制台,选择“创建集群”:
- 集群类型:Kubernetes 托管版
- 网络插件:Terway 或 Flannel
- 容器运行时:containerd
- Kubernetes 版本:选择当前稳定版本
- API Server 访问:优先选择内网访问,公网访问限制白名单
- 日志服务:建议开启,方便后续排障
如果需要高性能网络、Pod 独立安全组或更强网络策略能力,优先考虑 Terway。
2.3 配置节点池
节点池决定了工作负载运行的计算资源:
| 节点类型 | 推荐用途 | |----------|----------| | 通用型 ECS | Web 服务、API 服务、轻量微服务 | | 计算型 ECS | CPU 密集型任务 | | 内存型 ECS | 缓存、Java 服务、数据处理 | | GPU 实例 | AI 推理、视频处理、模型训练 |
建议至少创建两个节点池:
- 系统节点池:运行 CoreDNS、Ingress、监控等基础组件。
- 业务节点池:运行业务应用,便于独立扩缩容和升级。
节点池开启自动伸缩后,可以根据业务峰谷自动增加或减少 ECS 实例。
三、配置镜像仓库 ACR
ACK 与阿里云容器镜像服务 ACR 配合使用最顺畅。
3.1 创建命名空间与仓库
- 进入 ACR 控制台。
- 创建企业命名空间,例如
duoyun-prod。 - 为每个应用创建独立镜像仓库。
- 配置镜像扫描和生命周期规则。
3.2 推送镜像
示例命令:
docker build -t registry-intl.<region>.aliyuncs.com/duoyun-prod/api:1.0.0 .
docker login registry-intl.<region>.aliyuncs.com
docker push registry-intl.<region>.aliyuncs.com/duoyun-prod/api:1.0.0
生产环境不要长期使用 latest 标签,建议使用 Git Commit、版本号或构建编号作为镜像标签。
四、发布首个应用
4.1 创建 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-api
spec:
replicas: 2
selector:
matchLabels:
app: demo-api
template:
metadata:
labels:
app: demo-api
spec:
containers:
- name: demo-api
image: registry-intl.<region>.aliyuncs.com/duoyun-prod/api:1.0.0
ports:
- containerPort: 3000
resources:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
4.2 暴露服务
如果是公网 Web 服务,可以通过 SLB 或 Ingress 暴露:
apiVersion: v1
kind: Service
metadata:
name: demo-api
spec:
type: ClusterIP
selector:
app: demo-api
ports:
- port: 80
targetPort: 3000
再通过 Ingress 配置域名、HTTPS 证书和路径路由。
4.3 验证发布
kubectl get pods
kubectl get svc
kubectl describe pod <pod-name>
kubectl logs <pod-name>
如果 Pod 无法启动,优先检查镜像地址、镜像拉取权限、环境变量、资源限制和安全组策略。
五、安全最佳实践
5.1 控制面安全
- API Server 公网访问必须设置 IP 白名单。
- 为管理员账号开启 MFA。
- 禁止把 kubeconfig 明文提交到 Git 仓库。
- 使用 RAM 角色和最小权限策略。
5.2 工作负载安全
- 为不同业务设置 Namespace。
- 使用 NetworkPolicy 限制东西向访问。
- 镜像开启漏洞扫描。
- 容器不要以 root 用户运行。
- 为 Pod 设置 requests 和 limits,避免资源争抢。
5.3 日志与审计
建议开启:
- 集群审计日志
- 应用容器日志
- Ingress 访问日志
- 节点系统日志
- 告警通知规则
这些数据可以帮助团队快速定位发布失败、流量异常和安全事件。
六、成本优化建议
ACK 的成本主要来自 ECS 节点、SLB、公网流量、日志服务和存储。
降低成本可以从以下方面入手:
- 节点规格 right-sizing:根据真实 CPU/内存使用率调整实例规格。
- 自动伸缩:低峰期减少节点数量,高峰期自动扩容。
- 预留实例或节省计划:稳定业务使用长期折扣。
- Spot 实例:适合批处理、离线任务和可中断工作负载。
- 日志保留周期:为不同日志设置合理保留天数。
- 镜像清理:定期删除旧镜像,减少存储浪费。
七、ACK 与多云架构
很多企业不会只使用一个云平台。ACK 可以与 AWS EKS、GCP GKE、腾讯云 TKE 配合形成多云容器架构:
- 使用统一的 CI/CD 流水线发布到多个集群。
- 使用对象存储跨云备份关键数据。
- 在不同区域部署服务,降低单云故障风险。
- 根据业务所在地选择最优云厂商与网络线路。
多云架构的关键不是“同时用很多云”,而是建立统一的治理、成本、安全和发布标准。
总结
部署 ACK 的核心流程是:规划网络与权限 → 创建托管集群 → 配置节点池 → 接入镜像仓库 → 发布应用 → 完善安全、监控和成本治理。对于希望在亚太、中东、欧洲等区域开展业务的企业,阿里云国际版 ACK 是一个成熟的 Kubernetes 托管平台。
多云(Duoyun Cloud)代理阿里云国际、腾讯云国际、AWS 和 GCP,可协助企业完成账号开通、折扣采购、Kubernetes 架构设计、成本优化和 7×24 技术支持。如果你正在规划容器化或多云部署,可以访问 duoyun.io 获取方案咨询。