如何解决如何使用terraform创建具有公共和私有子网的EKS集群?
我正在使用terraform来设置EKS集群,我需要确保将我的工作节点放置在专用子网中,并将我的公共子网用于负载均衡器,但是我实际上不知道如何在我的群集中注入公共子网和私有子网,因为我只使用私有子网。
resource "aws_eks_cluster" "master_node" {
name = "my-cluster"
role_arn = aws_iam_role.master_iam_role.arn
version = "1.14"
vpc_config {
security_group_ids = [aws_security_group.master_security_group.id]
subnet_ids = var.private_subnet_eks_ids
}
depends_on = [
aws_iam_role_policy_attachment.main-cluster-AmazonEKSClusterPolicy,aws_iam_role_policy_attachment.main-cluster-AmazonEKSServicePolicy,]
}
resource "aws_autoscaling_group" "eks_autoscaling_group" {
desired_capacity = var.desired_capacity
launch_configuration = aws_launch_configuration.eks_launch_config.id
max_size = var.max_size
min_size = var.min_size
name = "my-autoscaling-group"
vpc_zone_identifier = var.private_subnet_eks_ids
depends_on = [
aws_efs_mount_target.efs_mount_target
]
}
解决方法
我使用vpc module在VPC上创建公共子网和私有子网。然后,我使用eks module创建EKS集群并引用vpc数据。
示例
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["eu-north-1a","eu-north-1b","eu-north-1c"]
private_subnets = ["10.0.1.0/24","10.0.2.0/24","10.0.3.0/24"]
public_subnets = ["10.0.101.0/24","10.0.102.0/24","10.0.103.0/24"]
enable_nat_gateway = true
enable_vpn_gateway = true
}
然后是EKS群集,在这里我使用module.vpc.private_subnets
和module.vpc.vpc_id
引用VPC子网:
module "eks-cluster" {
source = "terraform-aws-modules/eks/aws"
cluster_name = "my-eks-cluster"
cluster_version = "1.17"
subnets = module.vpc.private_subnets
vpc_id = module.vpc.vpc_id
worker_groups = [
{
instance_type = "t3.small"
asg_max_size = 2
}
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。