Delen via


Labels gebruiken in een AKS-cluster (Azure Kubernetes Service)

Als u meerdere knooppuntgroepen hebt, kunt u een label toevoegen tijdens het maken van een knooppuntgroep. Kubernetes-labels verwerken de planningsregels voor knooppunten. U kunt labels op elk gewenst moment toevoegen aan een knooppuntgroep en deze toepassen op alle knooppunten in de knooppuntgroep.

In deze handleiding leert u hoe u labels gebruikt in een AKS-cluster (Azure Kubernetes Service).

Vereisten

U moet Azure CLI versie 2.2.0 of hoger hebben geïnstalleerd en geconfigureerd. Voer az --version uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Een AKS-cluster met een label maken

U kunt een AKS-cluster maken met knooppuntlabels om sleutel-waarde metagegevens in te stellen voor het plannen van werkbelasting.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="myAKSCluster$RANDOM_SUFFIX"
az group create --name $RESOURCE_GROUP --location $REGION

Resultaten:

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx",
  "location": "eastus2",
  "managedBy": null,
  "name": "myResourceGroupxxx",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Maak het AKS-cluster waarin knooppuntlabels worden opgegeven (bijvoorbeeld dept=IT, costcenter=9000):

az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $AKS_CLUSTER_NAME \
    --node-count 2 \
    --nodepool-labels dept=IT costcenter=9000 \
    --generate-ssh-keys --location $REGION

Resultaten:

{
  "aadProfile": null,
  "addonProfiles": {},
  "agentPoolProfiles": [
    {
      "count": 2,
      "enableAutoScaling": null,
      "mode": "System",
      "name": "nodepool1",
      "nodeLabels": {
        "costcenter": "9000",
        "dept": "IT"
      }
    }
  ],
  "dnsPrefix": "myaksclusterxxx-dns",
  "fqdn": "myaksclusterxxx-xxxxxxxx.hcp.eastus2.azmk8s.io",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxx",
  "location": "eastus2",
  "name": "myAKSClusterxxx",
  "resourceGroup": "myResourceGroupxxx"
}

Controleer of de labels zijn ingesteld:

az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --overwrite-existing
kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"

Een knooppuntgroep met een label maken

U kunt een extra knooppuntgroep maken met labels voor specifieke planningsbehoeften.

export NODEPOOL_NAME="labelnp"
az aks nodepool add \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $AKS_CLUSTER_NAME \
    --name $NODEPOOL_NAME \
    --node-count 1 \
    --labels dept=HR costcenter=5000

Hier volgt een voorbeeld van de uitvoer van de az aks nodepool list opdracht waarin de labelnp-knooppuntgroep knooppunten maken met de opgegeven nodeLabels:

az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $AKS_CLUSTER_NAME

Resultaten:

[
  {
    "count": 2,
    "name": "nodepool1",
    "nodeLabels": {
      "costcenter": "9000",
      "dept": "IT"
    }
  },
  {
    "count": 1,
    "name": "labelnp",
    "nodeLabels": {
      "costcenter": "5000",
      "dept": "HR"
    },
    "provisioningState": "Creating"
  }
]

Controleer of de labels zijn ingesteld:

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

Labels voor bestaande knooppuntgroepen bijwerken

U kunt de labels in een bestaande knooppuntgroep bijwerken. Houd er rekening mee dat het bijwerken van labels de oude labels overschrijft.

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $AKS_CLUSTER_NAME \
    --name $NODEPOOL_NAME \
    --labels dept=ACCT costcenter=6000

Controleer of de nieuwe labels zijn ingesteld:

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

Niet-beschikbare labels

Gereserveerde systeemlabels

Sinds de AKS-release van 2021-08-19 heeft AKS de mogelijkheid om wijzigingen aan te brengen in gereserveerde AKS-labels gestopt. Als u deze labels probeert te wijzigen, wordt er een foutbericht weergegeven.

De volgende labels zijn gereserveerde AKS-labels. Het gebruik van virtuele knooppunten geeft aan of deze labels een ondersteunde systeemfunctie op virtuele knooppunten kunnen zijn. Sommige eigenschappen die door deze systeemfuncties worden gewijzigd, zijn niet beschikbaar op de virtuele knooppunten omdat ze de host moeten wijzigen.

Etiket Weergegeven als Voorbeeld/opties Gebruik van virtuele knooppunten
kubernetes.azure.com/agentpool <naam van agentpool> nodepool1 Zelfde
kubernetes.io/arch <runtime.GOARCH> amd64 N.v.t.
kubernetes.io/os <Type besturingssysteem> Linux/Windows Zelfde
node.kubernetes.io/instance-type <VM-grootte> Standard_NC6s_v3 Virtueel
topology.kubernetes.io/region <Azure-regio> westus2 Zelfde
topology.kubernetes.io/zone <Azure-zone> 0 Zelfde
kubernetes.azure.com/cluster <MC_RgName> MC_aks_myAKSCluster_westus2 Zelfde
kubernetes.azure.com/managedby aks aks N.v.t.
kubernetes.azure.com/mode <modus> User of system Gebruiker
kubernetes.azure.com/role agent Agent Zelfde
kubernetes.azure.com/scalesetpriority <VMSS-prioriteit> spot of regular N.v.t.
kubernetes.io/hostname <hostnaam> aks-nodepool-00000000-vmss000000 Zelfde
kubernetes.azure.com/storageprofile <Opslagprofiel voor besturingssysteemschijven> Managed N.v.t.
kubernetes.azure.com/storagetier <Opslaglaag voor besturingssysteemschijven> Premium_LRS N.v.t.
kubernetes.azure.com/node-image-version <VHD-versie> AKSUbuntu-1804-2020.03.05 Versie van virtueel knooppunt
kubernetes.azure.com/network-name <naam van knooppuntpool vnet> vnetName Virtueel knooppunt virtueel netwerk
kubernetes.azure.com/network-subnet <subnetnaam van nodepool> subnetName Naam van subnet van virtueel knooppunt
kubernetes.azure.com/ppg <naam nodepool ppg> ppgName N.v.t.
kubernetes.azure.com/encrypted-set <naam van versleutelde knooppuntpool> encrypted-set-name N.v.t.
kubernetes.azure.com/accelerator <gaspedaal> nvidia N.v.t.
kubernetes.azure.com/fips_enabled <Is FIPS ingeschakeld?> true N.v.t.
kubernetes.azure.com/os-sku <os/sku> Besturingssysteem-SKU maken of bijwerken Linux
kubernetes.azure.com/os-sku-effective <werkelijke SKU van het besturingssysteem gekozen> Ubuntu2204 of vergelijkbaar (nooit Ubuntu, heeft altijd de versie opgegeven) N.v.t.
kubernetes.azure.com/os-sku-requested <gebruiker aangevraagde OS-SKU> Ubuntu, Ubuntu2204, of vergelijkbaar (exact overeenkomt met aangevraagde SKU vanuit de API) N.v.t.
kubernetes.azure.com/sku-cpu <aantal processoren> 4 Zelfde
kubernetes.azure.com/sku-memory <geheugen in GB> 16 Zelfde
kubernetes.azure.com/nodepool-type <type knooppuntgroep> VirtualMachineScaleSets N.v.t.
  • Hetzelfde is opgenomen op plaatsen waar de verwachte waarden voor de labels niet verschillen tussen een standaardknooppuntgroep en een virtuele knooppuntgroep. Omdat virtuele knooppuntpods geen onderliggende virtuele machine (VM) beschikbaar maken, worden de WAARDEN van de VM-SKU vervangen door de virtuele SKU.
  • De versie van het virtuele knooppunt verwijst naar de huidige versie van de virtuele Kubelet-ACI-connectorrelease.
  • De naam van het subnet van het virtuele knooppunt is de naam van het subnet waarin virtuele knooppuntpods worden geïmplementeerd in Azure Container Instance (ACI).
  • Virtueel knooppunt virtueel netwerk is de naam van het virtuele netwerk, dat het subnet bevat waarin virtuele knooppuntpods worden geïmplementeerd op ACI.
  • Knooppunten voor automatisch inrichten van knooppunten (Karpenter) hebben extra labels die overeenkomen met de ondersteunde selectors.
  • kubernetes.azure.com/network-name en kubernetes.azure.com/network-subnet wordt afgekapt als de onderliggende resourcenamen langer zijn dan 64 tekens.

Gereserveerde voorvoegsels

De volgende voorvoegsels zijn gereserveerde voorvoegsels van AKS en kunnen niet worden gebruikt voor een knooppunt:

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

Zie Kubernetes-bekende labels, aantekeningen en taints voor meer informatie over gereserveerde voorvoegsels.

Afgeschafte labels

De volgende labels zijn gepland voor afschaffing met de release van Kubernetes v1.24. U moet eventuele labelverwijzingen wijzigen in de aanbevolen vervanging.

Etiket Aanbevolen vervanging Onderhouder
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
Opslagprofiel* kubernetes.azure.com/storageprofile Azure Kubernetes Service
Opslagtier* kubernetes.azure.com/storagetier Azure Kubernetes Service
Gaspedaal* kubernetes.azure.com/accelerator Azure Kubernetes Service

*Nieuw afgeschaft. Zie de releaseopmerkingen voor meer informatie.

Volgende stappen

Meer informatie over Kubernetes-labels vindt u in de documentatie over Kubernetes-labels.