Använda etiketter i ett AKS-kluster (Azure Kubernetes Service)

Om du har flera nodpooler kanske du vill lägga till en etikett när nodpoolen skapas. Kubernetes-etiketter hanterar schemaläggningsreglerna för noder. Du kan lägga till etiketter i en nodpool när som helst och tillämpa dem på alla noder i nodpoolen.

I den här instruktionsguiden lär du dig hur du använder etiketter i ett AKS-kluster (Azure Kubernetes Service).

Förutsättningar

Du behöver Azure CLI version 2.2.0 eller senare installerad och konfigurerad. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Skapa ett AKS-kluster med en etikett

  1. Skapa ett AKS-kluster med en etikett med kommandot az aks create och ange parametern --node-labels för att ange etiketterna. Etiketter måste vara ett nyckel/värde-par och ha en giltig syntax.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --nodepool-labels dept=IT costcenter=9000
    
  2. Kontrollera att etiketterna har angetts med kommandot kubectl get nodes --show-labels .

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

Skapa en nodpool med en etikett

  1. Skapa en nodpool med en etikett med kommandot az aks nodepool add och ange ett namn för parametrarna --name och etiketterna för parametern --labels . Etiketter måste vara ett nyckel/värde-par och ha en giltig syntax

    Följande exempelkommando skapar en nodpool med namnet labelnp med etiketterna dept=HR och costcenter=5000.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --node-count 1 \
        --labels dept=HR costcenter=5000 \
        --no-wait
    

    Följande exempelutdata från az aks nodepool list kommandot visar att nodpoolen labelnp är Skapa noder med den angivna nodenLabels:

    [
      {
        ...
        "count": 1,
        ...
        "name": "labelnp",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Creating",
        ...
        "nodeLabels":  {
          "costcenter": "5000",
          "dept": "HR"
        },
        ...
      },
     ...
    ]
    
  2. Kontrollera att etiketterna har angetts med kommandot kubectl get nodes --show-labels .

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

Uppdatera etiketter i befintliga nodpooler

  1. Uppdatera en etikett i en befintlig nodpool med hjälp av az aks nodepool update kommandot . Om du uppdaterar etiketter i befintliga nodpooler skrivs de gamla etiketterna över med de nya etiketterna. Etiketter måste vara ett nyckel/värde-par och ha en giltig syntax.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --labels dept=ACCT costcenter=6000 \
        --no-wait
    
  2. Kontrollera att etiketterna har angetts med kommandot kubectl get nodes --show-labels .

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

Etiketter som inte är tillgängliga

Reserverade systemetiketter

Sedan AKS-versionen 2021-08-19 stoppade AKS möjligheten att göra ändringar i reserverade AKS-etiketter. Om du försöker ändra etiketterna visas ett felmeddelande.

Följande etiketter är reserverade AKS-etiketter. Användning av virtuell nod anger om dessa etiketter kan vara en systemfunktion som stöds på virtuella noder. Vissa egenskaper som dessa systemfunktioner ändrar är inte tillgängliga på de virtuella noderna eftersom de kräver att värden ändras.

Etikett Värde Exempel/alternativ Användning av virtuell nod
kubernetes.azure.com/agentpool <agentpoolens namn> nodepool1 Samma
kubernetes.io/arch amd64 Runtime. GOARCH Inte tillgängligt
kubernetes.io/os <OS-typ> Linux/Windows Samma
node.kubernetes.io/instance-type <Storlek på virtuell dator> Standard_NC6s_v3 Virtuell
topology.kubernetes.io/region <Azure-region> westus2 Samma
topology.kubernetes.io/zone <Azure-zon> 0 Samma
kubernetes.azure.com/cluster <MC_RgName> MC_aks_myAKSCluster_westus2 Samma
kubernetes.azure.com/mode <läge> Användare eller system User
kubernetes.azure.com/role agent Agent Samma
kubernetes.azure.com/scalesetpriority <VMSS-prioritet> Spot eller regular Inte tillgängligt
kubernetes.io/hostname <Värdnamn> aks-nodepool-00000000-vmss000000 Samma
kubernetes.azure.com/storageprofile <Os-disklagringsprofil> Hanterad Inte tillgängligt
kubernetes.azure.com/storagetier <Lagringsnivå för OS-disk> Premium_LRS Inte tillgängligt
kubernetes.azure.com/instance-sku <SKU-familj> Standard_N Virtuell
kubernetes.azure.com/node-image-version <VHD-version> AKSUbuntu-1804-2020.03.05 Version av virtuell nod
kubernetes.azure.com/subnet <nodpoolens undernätsnamn> subnetName Namn på undernät för virtuell nod
kubernetes.azure.com/vnet <nodepool vnet name> vnetName Virtuellt nodnätverk
kubernetes.azure.com/ppg <nodepool ppg name> ppgName Inte tillgängligt
kubernetes.azure.com/encrypted-set <nodepool encrypted-set name> encrypted-set-name Inte tillgängligt
kubernetes.azure.com/accelerator <Accelerator> nvidia Inte tillgängligt
kubernetes.azure.com/fips_enabled <är fips aktiverat?> true Inte tillgängligt
kubernetes.azure.com/os-sku <os/sku> Skapa eller uppdatera OS SKU Linux
  • Samma sak ingår på platser där de förväntade värdena för etiketterna inte skiljer sig mellan en standardnodpool och en virtuell nodpool. Eftersom virtuella nodpoddar inte exponerar någon underliggande virtuell dator ersätts SKU-värdena för den virtuella datorn med SKU Virtual.
  • Den virtuella nodversionen refererar till den aktuella versionen av den virtuella Versionen av Kubelet-ACI-anslutningsappen.
  • Undernätsnamn för virtuell nod är namnet på det undernät där virtuella nodpoddar distribueras till Azure Container Instance (ACI).
  • Virtuellt nodnätverk är namnet på det virtuella nätverket, som innehåller det undernät där virtuella nodpoddar distribueras på ACI.

Reserverade prefix

Följande prefix är reserverade AKS-prefix och kan inte användas för någon nod:

  • kubernetes.azure.com/
  • kubernetes.io/

Mer information om reserverade prefix finns i Kubernetes välkända etiketter, anteckningar och taints.

Inaktuella etiketter

Följande etiketter planeras för utfasning med versionen av Kubernetes v1.24. Du bör ändra eventuella etikettreferenser till den rekommenderade ersättningen.

Etikett Rekommenderad ersättning Ansvarig
failure-domain.beta.kubernetes.io/region topology.kubernetes.io/region Kubernetes
failure-domain.beta.kubernetes.io/zone topology.kubernetes.io/zone Kubernetes
beta.kubernetes.io/arch kubernetes.io/arch Kubernetes
beta.kubernetes.io/instance-type node.kubernetes.io/instance-type Kubernetes
beta.kubernetes.io/os kubernetes.io/os Kubernetes
node-role.kubernetes.io/agent* kubernetes.azure.com/role=agent Azure Kubernetes Service
kubernetes.io/role* kubernetes.azure.com/role=agent Azure Kubernetes Service
Agentpool* kubernetes.azure.com/agentpool Azure Kubernetes Service
Lagringsprofil* kubernetes.azure.com/storageprofile Azure Kubernetes Service
Lagringstier* kubernetes.azure.com/storagetier Azure Kubernetes Service
Accelerator* kubernetes.azure.com/accelerator Azure Kubernetes Service

*Nyligen inaktuell. Mer information finns i Viktig information.

Nästa steg

Läs mer om Kubernetes-etiketter i dokumentationen för Kubernetes-etiketter.