写在前面
版本说明:本文基于 2026 年三大云的托管 K8s 服务(Azure AKS、AWS EKS、GCP GKE),命令和特性以官方当前 GA 版本为准。
这个系列承接「K8s 学习笔记」十篇——那十篇讲的是 K8s 原理和自建(kubeadm、网络、存储、调度)。生产环境常会选择云厂商的托管 K8s:控制平面交给云,团队继续负责应用,并按所选模式负责节点池、网络和平台配置。
三大云各有托管 K8s 产品:
- Azure AKS(Azure Kubernetes Service)
- AWS EKS(Elastic Kubernetes Service)
- GCP GKE(Google Kubernetes Engine,K8s 的"娘家")
姿势相近(都是 upstream K8s + 云集成),但细节差异巨大——控制平面收不收费、网络模型、身份对接、Serverless 节点、监控栈、IaC 工具,每家一套。
本系列 5 篇:
- 本篇(1):三家横览,建立全景和选型初印象
- 2-4 篇:AKS / EKS / GKE 各一篇端到端实战(创建集群 → 推镜像 → 部署应用 → 暴露服务 → 监控 → 清理算账),三篇用同一套路,方便你横向对照
- 5 篇:横向对比 + 选型建议
读完你能:在任意一家云上把一个应用跑进托管 K8s,并且知道什么场景该选哪家。
一、为什么上云托管 K8s
自建 K8s 的运维负担常被低估。一个生产级自建集群,你要长期维护:
| |
云托管的核心交易:把上面这些"通用但难搞"的部分(控制平面、CNI、CSI 基础设施、升级、监控集成)交给云厂商,你只管业务相关的(节点池、应用、节点自动伸缩)。
| |
代价是被锁定到某家云的生态(身份、存储、监控、LB),以及控制平面可能收费(见第三节)。但对绝大多数业务,这笔交易划算。
二、三大云托管 K8s 一览
先上一张总表,建立全局印象(细节后面各篇展开):
| 维度 | Azure AKS | AWS EKS | GCP GKE |
|---|---|---|---|
| 发布年份 | 2018(预览 2017) | 2018 | 2014(K8s 起源地) |
| 集群管理费用 | Free 层免费;Standard/Premium 层收费 | 标准支持期 $0.10/h;延长支持期更高 | $0.10/h;每个结算账户有可抵扣一个 Autopilot 或 zonal Standard 集群的月度额度 |
| 节点费用 | Azure VM(按需/预留/Spot) | EC2(按需/预留/Spot) | GCE / Autopilot 按 Pod 计费 |
| 默认 CNI | Azure CNI(含 Overlay)/ Kubenet | Amazon VPC CNI | VPC-native(Alias IP) |
| Pod 网络 | 拿 VNet IP 或 Overlay 私网 | 直接拿 ENI 的次级 IP | 节点子网 Alias IP |
| 降低节点运维的模式 | AKS Automatic;Virtual Nodes 可把部分 Pod 调度到 ACI | EKS Auto Mode;Fargate 可承载部分 Pod | Autopilot |
| 身份对接 | Managed Identity | IRSA(IAM Roles for SA) | Workload Identity |
| 镜像仓库 | ACR | ECR | Artifact Registry |
| 监控 | Azure Monitor | CloudWatch Container Insights | Cloud Operations(原 Stackdriver) |
| 七层入口 | Application Gateway Ingress | AWS Load Balancer Controller | GCE Ingress Controller |
| IaC 首选 | Bicep / Terraform | eksctl / Terraform / CDK | Terraform / Config Connector |
| K8s 上游一致性 | 紧跟(约 1-2 月内) | 紧跟 | 最快(自家出的) |
三家都提供经认证的 Kubernetes。kubectl、标准 API 和大部分 Helm 工作流可以复用,但版本节奏、准入策略、存储类、负载均衡注解与托管扩展仍可能影响可移植性。
三、控制平面收费:选型的隐形大头
这是三家最显眼的差异,也是最容易被忽视的成本项:
| |
含义:
- 生产集群:不能只比较控制平面标价,还要把 SLA/支持层级、节点、负载均衡、NAT、日志和出口流量纳入总成本。
- 多集群 / 开发测试环境:固定的每集群管理费会累积;AKS Free 和 GKE 的月度抵扣也各有适用范围,不能简单视为所有集群永久免费。
- 小规模/突发:GKE Autopilot、AKS Virtual Nodes、EKS Fargate 可减少空闲节点,但计费单位、最低资源和平台限制不同,必须按实际工作负载测算。
选型时先估算集群数量和生命周期,再按目标区域的官方价格计算;本文不把示例单价当作长期报价。
四、网络模型差异(选型重头,先概览)
网络是三家差异最大、踩坑最深的地方,本节先概览,深入留到各实战篇。
| 云 | 模型 | Pod IP 来源 | 特点 |
|---|---|---|---|
| AKS | Azure CNI | VNet 子网 | Pod 直接在 VNet 可达,可与本地/对等网络互通;IP 消耗大 |
| AKS | Azure CNI Overlay | 私有 CIDR(推荐) | Pod 用 overlay IP,节点用 VNet;兼顾 IP 节约与互通 |
| AKS | Kubenet | NAT | 简单,Pod 通过节点 NAT 出网;旧默认 |
| EKS | Amazon VPC CNI | ENI 次级 IP | Pod 拿 VPC IP,原生互通;IP 密度受 ENI 限制 |
| GKE | VPC-native(Alias IP) | 节点 Alias 范围 | GCE 子网分配 alias 段给 Pod;GKE 默认且推荐 |
| |
五、身份对接:让 Pod 拿到云权限
应用要访问云资源(读 ACR/ECR/AR 镜像、写存储、查 Key Vault),怎么给 Pod 授权?三家都有"把云身份绑定到 ServiceAccount“的现代方案(取代旧的节点级密钥/AAD Pod Identity):
| 云 | 机制 | 原理 |
|---|---|---|
| AKS | Managed Identity + Workload Identity | ServiceAccount 关联 Managed Identity,Pod 通过 OIDC 联邦拿到 Azure AD token |
| EKS | IRSA(IAM Roles for SA) | ServiceAccount 注解关联 IAM Role,通过 OIDC 联邦签发 AWS STS token |
| GKE | Workload Identity | Kubernetes SA 与 GCP Service Account 建立映射,Pod 拿 GCP token |
三家原理高度同构:OIDC 联邦 + ServiceAccount 注解 + 短 token。会一个就会另两个。这是本系列实战篇的重头戏(旧式节点级密钥已不推荐)。
六、CLI 与 IaC
三家创建集群的"一把梭"命令:
| |
| 工具 | 定位 |
|---|---|
az | Azure 官方 CLI,AKS 是其中一个模块 |
eksctl | EKS 的开源命令行创建与管理工具,可简化 VPC、IAM 和节点组配置 |
gcloud | GCP 官方 CLI,含 GKE 模块 |
| Terraform | 三家都支持,多云统一 IaC 的首选 |
| Bicep / CDK / Config Connector | 各家原生 IaC,深度集成但锁生态 |
实战建议:单云用各家最顺手的 CLI(az / eksctl / gcloud);多云或要入 GitOps 用 Terraform 统一。
七、本系列怎么跟
2-4 篇用同一套姿势,每家一篇,你照着做完三家就能横向体感差异:
| |
demo 应用统一用一个最小 web 服务(nginx 或 .NET 单文件),避免业务复杂度干扰,专注云侧差异。
第 5 篇做横向对比 + 选型决策树(按规模 / 团队 / 已有云绑定 / 成本)。
八、小结
| |
下一篇:AKS 端到端实战——从 az group create 到 kubectl get svc,在 Azure 上把一个应用跑进 AKS。