--- title: "Public Cloud Learning Sessions - EKS Optimization Part 3 of 3 - Introduction to EKS Auto Mode" type: source tags: [] date: 2025-03-04 --- ## Source File - [[Cloud & DevOps/Public-Cloud-Learning-Sessions/04_EKS/public-cloud-learning-sessions-eks-optimization-part-3-of-3-introduction-to-eks-.md]] ## Summary(用中文描述) - 核心主题:EKS Auto Mode — AWS 将 EKS 数据平面管理责任扩展至计算节点托管 - 问题域:EKS 集群运维复杂度高(实例管理、OS 补丁、安全更新) - 方法/机制:Carpenter Controller 负责节点生命周期管理;Bottlerocket OS 提供最小化安全操作系统;AWS Load Balancer Controller 处理 ingress;EBS CSI Controller 支持有状态工作负载;Pod Identity Associations 替代 K8s RBAC 进行 Pod 级 IAM 权限控制;12% 实例费用溢价覆盖自动管理成本 - 结论/价值:EKS Auto Mode 大幅降低 K8s 运维负担,用户只需关注 VPC 配置、集群配置和 workload 配置;数据平面升级自动化(控制面升级后 Carpenter 自动触发滚动升级);与标准 Kubernetes 工作负载完全兼容 ## Key Claims(用中文描述) - EKS Auto Mode 将数据平面管理责任从用户扩展至 AWS 服务,覆盖实例、OS、补丁和安全更新 - EKS Auto Mode 默认提供两个节点池(General Purpose 和 System)和一个节点类(NodeClass) - General Purpose 节点池锁定 AMD64 架构,Custom 节点池可指定 Graviton 实例类型 - System 节点池的节点带有 taint,系统 add-on 必须配置对应 tolerations - EKS Auto Mode 包含核心集群能力:计算(Carpenter)、网络(AWS LB Controller)、存储(EBS CSI)、安全(Pod Identity Associations) - Prefix Delegation 默认启用,优化 Pod 网络 IP 分配 - 数据平面升级由控制面版本升级触发,Carpenter Controller 自动识别并执行滚动升级 - 每个 Auto Mode 实例收取 12% 溢价,覆盖自动化管理成本 - 可观测性通过 CloudWatch Agent、ADOT(AWS Distro for OpenTelemetry)或第三方收集器实现 ## Key Quotes > "With Auto Mode, a majority of the operational concerns are being managed by the ECS service." — EKS Auto Mode 将大多数运维职责托管至 AWS > "Once the control plane version gets upgraded, then the compute controller... will try to pull the current AMI version for that new control plane version." — 数据平面自动升级机制 ## Key Concepts - [[EKS Auto Mode]]:AWS EKS 的半托管模式,将计算节点的生命周期管理(实例采购、OS 补丁、安全更新)托管给 AWS,适用于希望降低 K8s 运维复杂度同时保留标准 K8s API 兼容性的团队 - [[Carpenter Controller]]:EKS Auto Mode 的计算控制器,负责节点池生命周期管理、AMI 版本管理和滚动升级编排 - [[Bottlerocket OS]]:Amazon 开发的容器专用最小化 Linux 操作系统,专为 EKS Auto Mode 设计,自动应用安全补丁 - [[AWS Load Balancer Controller]]:Auto Mode 特有的 LoadBalancer 类(eks.aws/alb),管理 ALB/NLB ingress 资源 - [[EBS CSI Controller]]:EKS Auto Mode 的存储控制器,提供 EBS 卷的动态供给,支持有状态工作负载(需配置 StorageClass 引用 eks-aws-ebs provisioner) - [[Pod Identity Associations]]:AWS 提供的 Pod 级 IAM 权限控制机制,替代传统的 K8s RBAC + ServiceAccount IAM Role 模式,无需修改 ServiceAccount annotation - [[Prefix Delegation]]:VPCCNI 的一个特性,为 Pod 分配 /28 前缀 IP 块而非单 IP,优化网络地址利用率,默认在 Auto Mode 中启用 - [[CoreDNS]]:K8s 集群 DNS 服务,在 Auto Mode 中作为系统服务打包至每个节点 - [[Kube Proxy]]:K8s 网络代理,在 Auto Mode 中以 IPtables 模式运行 - [[VPCCNI]]:Amazon VPC CNI 网络插件,在 Auto Mode 中作为系统服务运行 ## Key Entities - [[AWS]]:Amazon Web Services,EKS Auto Mode 的云服务提供商 - [[Amazon EKS]]:AWS 托管 Kubernetes 服务,Auto Mode 扩展了其托管范围至数据平面 ## Connections - [[public-cloud-learning-sessions-eks-optimization-part-1-of-3-compute-optimization]] ← extends ← [[public-cloud-learning-sessions-eks-optimization-part-3-of-3-introduction-to-eks]] - [[public-cloud-learning-sessions-eks-optimization-part-2-of-3-running-containers-w]] ← extends ← [[public-cloud-learning-sessions-eks-optimization-part-3-of-3-introduction-to-eks]] - [[ctp-topic-59-achieving-reliability-with-amazon-eks]] ← related_to ← [[public-cloud-learning-sessions-eks-optimization-part-3-of-3-introduction-to-eks]] - [[ctp-topic-64-scaling-out-with-amazon-eks]] ← related_to ← [[public-cloud-learning-sessions-eks-optimization-part-3-of-3-introduction-to-eks]] - [[ctp-topic-70-eks-deployment-using-iac]] ← related_to ← [[public-cloud-learning-sessions-eks-optimization-part-3-of-3-introduction-to-eks]] ## Contradictions - 暂无已知冲突内容