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
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 \ --generate-ssh-keys
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
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 syntaxFö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" }, ... }, ... ]
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
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
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 | Ej tillämpligt |
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 | Handläggare | Samma |
kubernetes.azure.com/scalesetpriority | <VMSS-prioritet> | Spot eller regular | Ej tillämpligt |
kubernetes.io/hostname | <värdnamn> | aks-nodepool-00000000-vmss000000 | Samma |
kubernetes.azure.com/storageprofile | <Os-disklagringsprofil> | Hanterade | Ej tillämpligt |
kubernetes.azure.com/storagetier | <Lagringsnivå för OS-disk> | Premium_LRS | Ej tillämpligt |
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 | Ej tillämpligt |
kubernetes.azure.com/encrypted-set | <nodepool encrypted-set name> | encrypted-set-name | Ej tillämpligt |
kubernetes.azure.com/accelerator | <gaspedal> | nvidia | Ej tillämpligt |
kubernetes.azure.com/fips_enabled | <är fips aktiverat?> | true | Ej tillämpligt |
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 |
Gaspedal* | 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.
Azure Kubernetes Service