使用 Terraform 的生产 EKS 完整指南

发布: (2026年3月9日 GMT+8 02:56)
2 分钟阅读
原文: Dev.to

Source: Dev.to

概览

使用 Terraform 部署可投入生产的 EKS —— 包含 Karpenter 自动扩缩容、自愈节点、Pod 安全标准以及多可用区高可用。

EKS 是最受欢迎的托管 Kubernetes 服务,但许多生产环境的部署配置严重不足:缺少节点自动修复、没有 Pod 安全标准、手动扩容等。本指南涵盖构建生产级 EKS 集群所需的全部内容。

功能对比

功能EKSAKSGKE
控制平面费用$0.10/小时免费免费(标准版)
Autopilot 模式否(使用 Karpenter)
节点自动修复手动 / Lambda内置内置
服务网格App Mesh / IstioIstioAnthos / Istio
GPU 支持p4d, g5NC、ND 系列T4, A100

Terraform 模块示例

module "eks" {
  source = "github.com/kogunlowo123/terraform-aws-auto-healing-eks"

  cluster_name    = "production-cluster"
  cluster_version = "1.29"
  vpc_id          = module.vpc.vpc_id
  subnet_ids      = module.vpc.private_subnet_ids

  node_groups = [{
    name            = "general"
    instance_types = ["m6i.xlarge", "m6i.2xlarge"]
    min_size        = 3
    max_size        = 20
    desired_size    = 5
  }]

  enable_karpenter                = true
  enable_cluster_autoscaler       = false  # Use Karpenter instead
  enable_node_termination_handler = true
  enable_auto_remediation         = true
}

最佳实践

  • 使用 Karpenter 代替 Cluster Autoscaler,实现更快的扩容和更好的资源打包。
  • 为每个生产工作负载 启用 Pod 中断预算(Pod Disruption Budgets)
  • 部署 Node Termination Handler,优雅地关闭 Spot 实例。
  • 使用 Calico 或 Cilium 实现网络策略
  • 开启控制平面日志并发送至 CloudWatch。
  • 使用 IRSA(服务账户的 IAM 角色),而不是节点级别的 IAM 权限。

相关 Terraform 模块

  • terraform-aws-auto-healing-eks — 自愈的 EKS。
  • terraform-aws-eks — 标准 EKS 模块。
  • terraform-aws-vpc-complete — 为 EKS 提供的 VPC。

完整指南:

0 浏览
Back to Blog

相关文章

阅读更多 »

开发者角色,重新定义

Developer = Product + Architect + QA。 那就是在 AI 代理带来的新现实下,今天软件工程师的角色。如果那个公式...