首页 > 解决方案 > 如何为 EKS 配置子网?

问题描述

我目前正在学习如何部署 EKS(通过 Terraform),并希望了解如何设置所需的子网数量,以及它们是公共的还是私有的。这是我的代码在 EKS 中的样子的片段:

module "eks_cluster" {
  source                    = "terraform-aws-modules/eks/aws"
  version                   = "13.2.1"
  cluster_name              = "${var.project_name}-meow-${var.environment}"
  cluster_version           = "1.18"
  vpc_id                    = module.vpc.vpc_id
  cluster_enabled_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
  enable_irsa               = true
  subnets                   = [module.vpc.subnet_a_private_id, module.vpc.subnet_b_private_id, module.vpc.subnet_a_public_id]
}

重新表述我的问题,我希望了解:

标签: amazon-web-servicesamazon-eks

解决方案


我建议您查看AWS 文档,这些文档在您创建 EKS 集群时解释了 VPC 的作用。根据链接,以下是您问题的答案:

我需要将 EKS 部署到多少个子网?我应该将它部署在 VPC 中的所有子网上吗?

至少两个位于不同可用区的子网。使用所有子网是 AWS 控制台中的默认行为。

如果我将 EKS 部署到所有公共子网或所有私有子网会有什么不同?

来自EKS 中 VPC 上的AWS 文档:

Private-only:一切都在私有子网中运行,Kubernetes 无法为您的 Pod 创建面向 Internet 的负载均衡器。

仅限公共:一切都在公共子网中运行,包括您的节点。

还:

我们建议使用具有公共子网和私有子网的 VPC,以便 Kubernetes 可以在公共子网中创建公共负载均衡器,将流量负载均衡到在私有子网中的节点上运行的 pod。


推荐阅读