terraform - Terraform:如何将 Windows 工作节点添加到 eks 集群?
问题描述
我在 AWS (Linux) 上使用带有工作节点的 terraform 代码预置的 EKS 集群 (1.16)。以下代码用于创建 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 优化的 Windows AMI。
aws-auth
ConfigMap
如启动自我管理的 Windows 节点中所述,您还需要稍有不同的角色,mapRoles
如
groups:
- system:bootstrappers
- system:nodes
- eks:kube-proxy-windows
推荐阅读
- c# - 如何让我的 NPC 指向一个航点?
- function - rust 中的嵌套动态函数对象
- powershell - 在 windows powershell 中使用简单的 bteq 代码没有输出
- perl - 如何创建许多具有相同数据的哈希引用?
- reactjs - react native apollo client useQuery invalid hook call error
- android - Android Studio 运行旧代码但只是有时。真是烦人
- c# - 在 ASP.net MVC 中搜索多个字段:将参数从视图传递到控制器
- java - java.lang.IllegalArgumentException:列“_data”不存在。可用列:[]
- python - python字典更新键的值
- python - UDP 套接字接收功能