我正在使用terraform 12.20.0,并且已为EKS群集配置了2个节点组。
如何根据其节点组名称为EKS节点工作者添加名称标签?
我尝试在每个节点组的其他标签部分中添加“名称”标签,但这些标签没有使用,并且我的EC2实例名称为空,同时出现了其他标签。
这里是配置-我跳过了不太相关的部分:
module "eks-cluster" {
...
node_groups_defaults = {
disk_size = 128
key_name = var.key_name
subnets = [
aws_subnet.{{}}.id,
aws_subnet.{{}}.id,
]
k8s_labels = {
env = var.environment
}
additional_tags = {
env = var.environment
"k8s.io/cluster-autoscaler/enabled" = "true"
"k8s.io/cluster-autoscaler/${var.cluster-name}" = "true"
}
}
node_groups = {
app = {
name = "app"
.....
k8s_labels = {
nodegroup = "app"
}
additional_tags = {
nodegroup = "app"
Name = "${var.environment}-app-node"
}
}
ml = {
name = "ml"
...
instance_type = "m5.xlarge"
k8s_labels = {
nodegroup = "ml"
}
additional_tags = {
nodegroup = "ml"
Name = "${var.environment}-ml-node"
}
}
}
tags = {
env = var.environment
}
map_roles = [{
......
}]
}
答案 0 :(得分:1)
根据documentation资源:aws_eks_node_group
不允许修改实例上的标签。
EKS节点组即将推出一项不错的功能,它将允许您传递自定义的userdata脚本。使用它,您将能够以编程方式修改实例的标签。可以跟踪问题-> https://github.com/aws/containers-roadmap/issues/596
更新:
从20/08/2020起,您现在可以将launch_template
与节点组一起使用。这将允许您传递Name
标记。示例:
resource "aws_launch_template" "cluster" {
image_id = data.aws_ssm_parameter.cluster.value
instance_type = "t3.medium"
name = "eks-launch-template-test"
update_default_version = true
tag_specifications {
resource_type = "instance"
tags = {
Name = "eks-node-group-instance-name"
}
}
}
答案 1 :(得分:0)
我刚刚注意到
"k8s.io/cluster-autoscaler/${var.cluster-name}" = "owned"
可能需要
text-align: left