写在前面
版本说明:本文基于 2026 年三大云的托管 K8s 服务(Azure AKS、AWS EKS、GCP GKE),命令和特性以官方当前 GA 版本为准。
这个系列承接「K8s 学习笔记」八篇——那八篇讲的是 K8s 原理和自建(kubeadm、网络、存储、调度)。但真到生产,绝大多数团队不会自己拿 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 起源地) |
| 控制平面费用 | 免费 | ~$73/月/集群($0.10/h) | Standard 免费 / Autopilot 按 Pod |
| 节点费用 | 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 |
| Serverless 节点 | Virtual Nodes(ACI) | Fargate | 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 月内) | 紧跟 | 最快(自家出的) |
三家都是 upstream K8s,你学过的 kubectl/YAML/Helm 全部通用。差异主要在"云集成层"(网络、身份、存储、监控怎么对接云)。
三、控制平面收费:选型的隐形大头
这是三家最显眼的差异,也是最容易被忽视的成本项:
| |
含义:
- 单集群生产:EKS 的 $73/月可忽略(相对节点成本)。
- 多集群 / 开发测试环境:EKS 成本陡增——10 个测试集群光控制平面就 $730/月,而 AKS/GKE Standard 是 0。这时分摊策略(少集群多租户)或用更便宜方案(比如 Kind/k3s 做测试)很关键。
- 小规模/突发:GKE Autopilot、AKS Virtual Nodes、EKS Fargate 这种"按 Pod 计费、无空闲节点"的模式更省——但单价更高,规模化后反而贵。
选型第一问:你会有多少个集群?答案 >3 且含大量测试环境 → EKS 成本劣势显现。
四、网络模型差异(选型重头,先概览)
网络是三家差异最大、踩坑最深的地方,本节先概览,深入留到各实战篇。
| 云 | 模型 | 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 | Weaveworks 出的 EKS 脚手架,比 aws eks 好用 10 倍,事实标准 |
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。