通过Terraform创建EKS节点组错误



我试图通过terraform为EKS提供节点组

resource "aws_eks_node_group" "eks-node-group" {
cluster_name    = aws_eks_cluster.eks-cluster.name
instance_types = var.instance_types
node_group_name = "tf-name"
node_role_arn   = aws_iam_role.eks-node-group.arn
subnet_ids      = var.subnet_ids
scaling_config {
desired_size = 1
max_size     = 1
min_size     = 1
}
update_config {
max_unavailable = 1
}
depends_on = [
aws_iam_role_policy_attachment.eks-node-group-worker-node-policy,
aws_iam_role_policy_attachment.eks-node-group-cni-policy,
aws_iam_role_policy_attachment.eks-node-group-registry-read-only-policy
]
}

我正在尝试使用私有子网配置它。

然而,我得到一个错误的

节点组中[]的一个或多个Amazon EC2子网不存在自动为启动到的实例分配公共IP地址它。如果您希望为您的实例分配一个公共IP地址,那么您需要为子网启用自动分配公共IP地址。参见VPC指南中的IP寻址:

我需要做什么?

我假设您正在使用"terraform-aws-modules/vpc/aws"来定义VPC配置。

默认情况下,VPC不分配公网IP。请将此属性更新为true

map_public_ip_on_launch = true

参考:

<
  • Github讨论/gh>
  • 官方文档

您可以在AWS文档中找到答案:托管节点组

"Amazon EKS管理的节点组可以在公共和私有子网中启动。如果在2020年4月22日或之后在公共子网中启动托管节点组,则该子网必须将MapPublicIpOnLaunch设置为true,以便实例成功加入集群。如果公共子网是在2020年3月26日当天或之后使用eksctl或Amazon EKS提供的AWS CloudFormation模板创建的,则此设置已设置为true。如果公网子网是在2020年3月26日之前创建的,则需要手动修改。有关更多信息,请参见修改子网的公共IPv4地址属性。"

最新更新