Terraform:如何将 Windows 个工作节点添加到 eks 集群?
Terraform: How to add Windows worker nodes to eks cluster?
我使用 Terraform 代码配置的 EKS 集群 (1.16) 和 AWS (Linux) 上的工作节点。下面的代码用于创建 eks 工作节点 (Linux):
resource "aws_eks_node_group" "default-worker-nodes-group" {
cluster_name = "${var.eks_cluster_name}"
node_group_name = "${var.eks_cluster_node_group_name}"
node_role_arn = "${var.eks_worker_node_role_arn}"
subnet_ids = ["${var.eks_worker_subnet_ids}"]
ami_type = "${var.ami_type}"
instance_types = "${var.instance_type}"
disk_size = "${var.volume_size}"
release_version = "${var.release_version}"
version = "${var.eks_cluster_version}"
remote_access {
ec2_ssh_key = "${var.ec2_ssh_key}"
source_security_group_ids = ["${var.eks_worker_security_groups_ids}"]
}
}
我想添加额外的 Windows 个工作节点。怎么做?
我在下面定义了Linux节点实例角色的ARN。对于 Windows,我可以使用与 Linux 相同的角色吗?换句话说,Windows 节点的实例角色的 ARN 与 Linux 节点的实例角色的 ARN 相同?
#eks workers roles
resource "aws_iam_role" "eks-workernode-role" {
name = "${var.eks_workernode_iam_role_name}"
assume_role_policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
POLICY
}
data:
mapRoles: |
- rolearn: ${aws_iam_role.eks-workernode-role.arn}
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
您需要使用 Windows-AMI 的 AMI,请参阅 Amazon EKS optimized Windows AMIs。
您还需要在 aws-auth
ConfigMap
中稍微不同的角色,如 Launching self-managed Windows nodes 中所述,mapRoles
如
groups:
- system:bootstrappers
- system:nodes
- eks:kube-proxy-windows
我使用 Terraform 代码配置的 EKS 集群 (1.16) 和 AWS (Linux) 上的工作节点。下面的代码用于创建 eks 工作节点 (Linux):
resource "aws_eks_node_group" "default-worker-nodes-group" {
cluster_name = "${var.eks_cluster_name}"
node_group_name = "${var.eks_cluster_node_group_name}"
node_role_arn = "${var.eks_worker_node_role_arn}"
subnet_ids = ["${var.eks_worker_subnet_ids}"]
ami_type = "${var.ami_type}"
instance_types = "${var.instance_type}"
disk_size = "${var.volume_size}"
release_version = "${var.release_version}"
version = "${var.eks_cluster_version}"
remote_access {
ec2_ssh_key = "${var.ec2_ssh_key}"
source_security_group_ids = ["${var.eks_worker_security_groups_ids}"]
}
}
我想添加额外的 Windows 个工作节点。怎么做?
我在下面定义了Linux节点实例角色的ARN。对于 Windows,我可以使用与 Linux 相同的角色吗?换句话说,Windows 节点的实例角色的 ARN 与 Linux 节点的实例角色的 ARN 相同?
#eks workers roles
resource "aws_iam_role" "eks-workernode-role" {
name = "${var.eks_workernode_iam_role_name}"
assume_role_policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
POLICY
}
data:
mapRoles: |
- rolearn: ${aws_iam_role.eks-workernode-role.arn}
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
您需要使用 Windows-AMI 的 AMI,请参阅 Amazon EKS optimized Windows AMIs。
您还需要在 aws-auth
ConfigMap
中稍微不同的角色,如 Launching self-managed Windows nodes 中所述,mapRoles
如
groups:
- system:bootstrappers
- system:nodes
- eks:kube-proxy-windows