在 Azure Arc 启用的 AKS 中使用群集标签

适用于:Azure 本地版本 23H2

如果有多个节点池,可能需要在创建节点池期间添加标签。 Kubernetes 标签处理节点的计划规则。

本文介绍如何在已启用 Arc 的 AKS 上的 Kubernetes 群集中使用标签。

使用标签创建 Kubernetes 群集

  1. 使用 az aksarc create 命令创建带有标签的 Kubernetes 群集,并指定 --node-labels 用于设置标签的参数。 标签必须是键/值对,并且具有 有效的语法

    az aksarc create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --nodepool-labels dept=IT
    
  2. 使用 kubectl get nodes --show-labels 以下命令验证是否已设置标签:

    kubectl get nodes --show-labels | grep -e "dept=IT"
    

创建带标签的节点池

  1. 使用az aksarc nodepool add命令创建具有标签的节点池, 并为--labels参数指定--name参数的名称和标签。 标签必须是键/值对,并且具有 有效的语法

    以下示例创建一个名为标签dept=HR的节点池labelnp

    az aksarc nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name labelnp --node-count 1 --labels dept=HR –no-wait
    

    以下命令的 az aksarc nodepool list 以下示例输出显示 labelnp 节点池创建具有指定节点 nodeLabels的节点:

    [
      {
        ...
        "count": 1,
        ...
        "name": "labelnp",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Creating",
        ...
        "nodeLabels":  {
          "costcenter": "5000",
          "dept": "HR"
        },
        ...
      },
     ...
    ]
    
  2. 使用 kubectl get nodes --show-labels 以下命令验证是否已设置标签:

    kubectl get nodes --show-labels | grep -e "dept=HR"
    

更新现有节点池上的标签

  1. 使用 az aksarc nodepool update 命令更新现有节点池上的标签。 更新现有节点池上的标签会使用新标签覆盖旧标签。 标签必须是键/值对,并且 具有有效的语法

    az aksarc nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name labelnp --labels dept=ACCT costcenter=6000 --no-wait
    
  2. 使用kubectl get nodes --show-labels命令验证是否已设置标签。

    kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
    

不可用的标签

Azure Arc 启用的 AKS 遵循与 AKS 相同的规则:

  • 无法更改保留的系统标签。 如果尝试执行此操作,将返回错误。
  • Kubernetes 和 AKS 保留前缀不能用于任何节点。

有关详细信息,请参阅 AKS 文档中的“不可用”标签

后续步骤

有关 Kubernetes 标签的详细信息, 请参阅 Kubernetes 文档