云托管 K8s 实战(一):AKS vs EKS vs GKE 横览

写在前面

版本说明:本文基于 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 的运维负担常被低估。一个生产级自建集群,你要长期维护:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
自建 K8s 你要兜的事:
  ✓ 控制平面高可用(多 master、etcd 备份与恢复)
  ✓ 证书签发与轮换(API server、kubelet)
  ✓ 版本升级(kubeadm 升级,etcd 兼容性踩坑)
  ✓ CNI 网络插件(Calico/Cilium/Flannel 选型、故障排查)
  ✓ CSI 存储插件(对接某存储后端)
  ✓ Ingress controller(部署、证书、配置)
  ✓ 监控/日志栈(Prometheus + Grafana + Loki/EFK)
  ✓ 节点扩缩容(Cluster Autoscaler)
  ✓ 安全加固(CIS 基线、NetworkPolicy、RBAC)

  → 中小团队常扛不住,要么裸奔要么雇专职 SRE

云托管的核心交易:把上面这些"通用但难搞"的部分(控制平面、CNI、CSI 基础设施、升级、监控集成)交给云厂商,你只管业务相关的(节点池、应用、节点自动伸缩)

1
2
3
4
5
6
云托管你只管:                    云厂商托管:
  - worker node(VM 规格数量)      - controlplane(API/etcd/调度器)
  - 应用(Deployment/Service)     - CNI(云原生集成)
  - 节点池/自动伸缩配置            - CSI(对接云存储)
                                    - 控制平面升级(自动或一键)
                                    - 监控/日志的基础集成

代价是被锁定到某家云的生态(身份、存储、监控、LB),以及控制平面可能收费(见第三节)。但对绝大多数业务,这笔交易划算。


二、三大云托管 K8s 一览

先上一张总表,建立全局印象(细节后面各篇展开):

维度Azure AKSAWS EKSGCP GKE
发布年份2018(预览 2017)20182014(K8s 起源地)
集群管理费用Free 层免费;Standard/Premium 层收费标准支持期 $0.10/h;延长支持期更高$0.10/h;每个结算账户有可抵扣一个 Autopilot 或 zonal Standard 集群的月度额度
节点费用Azure VM(按需/预留/Spot)EC2(按需/预留/Spot)GCE / Autopilot 按 Pod 计费
默认 CNIAzure CNI(含 Overlay)/ KubenetAmazon VPC CNIVPC-native(Alias IP)
Pod 网络拿 VNet IP 或 Overlay 私网直接拿 ENI 的次级 IP节点子网 Alias IP
降低节点运维的模式AKS Automatic;Virtual Nodes 可把部分 Pod 调度到 ACIEKS Auto Mode;Fargate 可承载部分 PodAutopilot
身份对接Managed IdentityIRSA(IAM Roles for SA)Workload Identity
镜像仓库ACRECRArtifact Registry
监控Azure MonitorCloudWatch Container InsightsCloud Operations(原 Stackdriver)
七层入口Application Gateway IngressAWS Load Balancer ControllerGCE Ingress Controller
IaC 首选Bicep / Terraformeksctl / Terraform / CDKTerraform / Config Connector
K8s 上游一致性紧跟(约 1-2 月内)紧跟最快(自家出的)

三家都提供经认证的 Kubernetes。kubectl、标准 API 和大部分 Helm 工作流可以复用,但版本节奏、准入策略、存储类、负载均衡注解与托管扩展仍可能影响可移植性。


三、控制平面收费:选型的隐形大头

这是三家最显眼的差异,也是最容易被忽视的成本项:

1
2
3
4
5
6
                      控制平面      说明
  ─────────────────────────────────────────────────
  AKS Free            集群管理免费  无可用性 SLA,面向开发、测试和学习
  AKS Standard/Premium 按层级收费   面向生产,包含相应 SLA/支持能力
  EKS 标准支持期       $0.10/h       延长支持期价格更高
  GKE                 $0.10/h       另有按结算账户发放的有限月度抵扣额度

含义

  • 生产集群:不能只比较控制平面标价,还要把 SLA/支持层级、节点、负载均衡、NAT、日志和出口流量纳入总成本。
  • 多集群 / 开发测试环境:固定的每集群管理费会累积;AKS Free 和 GKE 的月度抵扣也各有适用范围,不能简单视为所有集群永久免费。
  • 小规模/突发:GKE Autopilot、AKS Virtual Nodes、EKS Fargate 可减少空闲节点,但计费单位、最低资源和平台限制不同,必须按实际工作负载测算。

选型时先估算集群数量和生命周期,再按目标区域的官方价格计算;本文不把示例单价当作长期报价。


四、网络模型差异(选型重头,先概览)

网络是三家差异最大、踩坑最深的地方,本节先概览,深入留到各实战篇。

模型Pod IP 来源特点
AKSAzure CNIVNet 子网Pod 直接在 VNet 可达,可与本地/对等网络互通;IP 消耗大
AKSAzure CNI Overlay私有 CIDR(推荐)Pod 用 overlay IP,节点用 VNet;兼顾 IP 节约与互通
AKSKubenetNAT简单,Pod 通过节点 NAT 出网;旧默认
EKSAmazon VPC CNIENI 次级 IPPod 拿 VPC IP,原生互通;IP 密度受 ENI 限制
GKEVPC-native(Alias IP)节点 Alias 范围GCE 子网分配 alias 段给 Pod;GKE 默认且推荐
1
2
3
4
5
6
7
选型直觉:
  - 需要 Pod 与 VPC/VNet 内其他资源直连(数据库、对等网络)
    → 选原生 CNI(Azure CNI / VPC CNI / GKE Alias)
  - IP 紧张、规模大
    → Azure CNI Overlay / EKS Prefix Delegation
  - 简单起步
    → Kubenet(AKS 旧默认)/ 默认 VPC CNI

五、身份对接:让 Pod 拿到云权限

应用要访问云资源(读 ACR/ECR/AR 镜像、写存储、查 Key Vault),怎么给 Pod 授权?三家都有"把云身份绑定到 ServiceAccount“的现代方案(取代旧的节点级密钥/AAD Pod Identity):

机制原理
AKSManaged Identity + Workload IdentityServiceAccount 关联 Managed Identity,Pod 通过 OIDC 联邦拿到 Azure AD token
EKSIRSA(IAM Roles for SA)ServiceAccount 注解关联 IAM Role,通过 OIDC 联邦签发 AWS STS token
GKEWorkload IdentityKubernetes SA 与 GCP Service Account 建立映射,Pod 拿 GCP token

三家原理高度同构:OIDC 联邦 + ServiceAccount 注解 + 短 token。会一个就会另两个。这是本系列实战篇的重头戏(旧式节点级密钥已不推荐)。


六、CLI 与 IaC

三家创建集群的"一把梭"命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Azure (az CLI):
  az group create -n rg-demo -l eastus
  az aks create -g rg-demo -n myAKS --node-count 3 --enable-managed-identity
  az aks get-credentials -g rg-demo -n myAKS    # 写入 kubeconfig

AWS (eksctl,最省心的姿势):
  eksctl create cluster --name myEKS --region us-east-1 --nodes 3
  aws eks update-kubeconfig --name myEKS --region us-east-1

GCP (gcloud):
  gcloud container clusters create-auto myGKE --region us-central1
  gcloud container clusters get-credentials myGKE --region us-central1
工具定位
azAzure 官方 CLI,AKS 是其中一个模块
eksctlEKS 的开源命令行创建与管理工具,可简化 VPC、IAM 和节点组配置
gcloudGCP 官方 CLI,含 GKE 模块
Terraform三家都支持,多云统一 IaC 的首选
Bicep / CDK / Config Connector各家原生 IaC,深度集成但锁生态

实战建议:单云用各家最顺手的 CLI(az / eksctl / gcloud);多云或要入 GitOps 用 Terraform 统一。


七、本系列怎么跟

2-4 篇用同一套姿势,每家一篇,你照着做完三家就能横向体感差异:

1
2
3
4
5
6
7
8
每篇套路(统一):
  1. 建镜像仓库 + 推一个 demo 镜像
  2. 创建托管集群(CLI 一把梭)
  3. 配置节点/运行环境拉取私有镜像,并给工作负载配置访问云 API 的身份
  4. kubectl 部署 Deployment + Service
  5. 暴露给公网(云 LB / Ingress)
  6. 接监控(云原生监控栈)
  7. 清理资源 + 算这笔账花了多少

demo 应用统一用一个最小 web 服务(nginx 或 .NET 单文件),避免业务复杂度干扰,专注云侧差异。

第 5 篇做横向对比 + 选型决策树(按规模 / 团队 / 已有云绑定 / 成本)。


八、小结

1
2
3
4
云托管 K8s 的一句话画像:
  AKS     提供 Free/Standard/Premium 管理层级,Azure 生态与 Entra ID 集成强
  EKS     控制平面收费,生态最广,IAM 成熟,复杂度略高
  GKE     集群管理费配有限月度抵扣,Autopilot 自动化程度高

下一篇:AKS 端到端实战——从 az group createkubectl get svc,在 Azure 上把一个应用跑进 AKS。

参考资料

Licensed under CC BY-NC-SA 4.0
最后更新于 Thursday, August 20, 2026