Terraform EKS 在节点组上指定 node-role.kubernetes.io 标签

Terraform EKS specify node-role.kubernetes.io label on node group

在 terraform aws_eks_node_group 资源中我无法设置 :

labels = {
  "node-role.kubernetes.io/others" = "other"
}

AWS 抱怨标签键不应包含 kubernetes.io。

Error: error creating EKS Node Group (my-cluster:others): InvalidParameterException: Label cannot contain reserved labels kubernetes.io/
{
  ClusterName: "my-cluster",
  Message_: "Label cannot contain reserved labels kubernetes.io/",
  NodegroupName: "others"
}

此外,生成的 EC2 实例没有名称,我不知道如何根据节点组为我的实例指定名称。

知道如何实现吗?

根据 documentation 您不能使用特定标签,关于标签:

The kubernetes.io/ and k8s.io/ prefixes are reserved for Kubernetes core components. Valid label values must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.

关于您的特定标签。自 k8s 1.15 或 1.16 以来存在许多问题,其中核心 kubernetes 中的某些更改不允许该标签。 one detailed issue

关于 EKS 节点组创建的 EC2 实例的命名。目前,无法传递 "Name" 标签。此问题与 重复,您还可以在其中找到如何暂时命名您的实例的答案。

node-role.kubernetes.io 和 kubernetes.io - 这是不同的前缀