Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie über mehrere Knotenpools verfügen, kann es wünschenswert sein, bei der Erstellung des Knotenpools eine Bezeichnung hinzuzufügen. Kubernetes-Bezeichnungen behandeln die Planungsregeln für Knoten. Sie können einem Knotenpool jederzeit Bezeichnungen hinzufügen und diese auf alle Knoten im Knotenpool anwenden.
In dieser Schrittanleitung erfahren Sie, wie Sie Bezeichnungen in einem AKS-Cluster (Azure Kubernetes Service) verwenden.
Voraussetzungen
Azure CLI-Version 2.2.0 oder höher muss installiert und konfiguriert sein. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
Erstellen eines AKS-Clusters mit einer Bezeichnung
Sie können einen AKS-Cluster mit Knotenbeschriftungen erstellen, um Schlüssel-/Wertmetadaten für die Arbeitsauslastungsplanung festzulegen.
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
Ergebnisse:
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx",
"location": "eastus2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Erstellen Sie den AKS-Cluster, der Knotenbeschriftungen angibt (z. B. 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
Ergebnisse:
{
"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"
}
Überprüfen Sie, ob die Bezeichnungen festgelegt wurden:
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"
Erstellen eines Knotenpools mit einer Bezeichnung
Sie können einen zusätzlichen Knotenpool mit Bezeichnungen für bestimmte Planungsanforderungen erstellen.
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 \
Im Folgenden finden Sie eine Beispielausgabe des az aks nodepool list Befehls, der zeigt, dass der Knotenpool "labelnp" Knoten mit den angegebenen nodeLabels erstellt:
az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $AKS_CLUSTER_NAME
Ergebnisse:
[
{
"count": 2,
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
},
{
"count": 1,
"name": "labelnp",
"nodeLabels": {
"costcenter": "5000",
"dept": "HR"
},
"provisioningState": "Creating"
}
]
Überprüfen Sie, ob die Bezeichnungen festgelegt wurden:
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Aktualisieren von Bezeichnungen für vorhandene Knotenpools
Sie können die Bezeichnungen in einem vorhandenen Knotenpool aktualisieren. Beachten Sie, dass durch das Aktualisieren von Bezeichnungen die alten Bezeichnungen überschrieben werden.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--labels dept=ACCT costcenter=6000 \
Überprüfen Sie, ob die neuen Bezeichnungen festgelegt sind:
kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Nicht verfügbare Bezeichnungen
Reservierte Systembezeichnungen
Seit dem AKS-Release vom 19.08.2021 gibt es in AKS keine Möglichkeit mehr, Änderungen an reservierten AKS-Bezeichnungen vorzunehmen. Der Versuch, diese Bezeichnungen zu ändern, führt zu einer Fehlermeldung.
Die folgenden Bezeichnungen sind reservierte AKS-Bezeichnungen. Die Verwendung virtueller Knoten gibt an, ob diese Bezeichnungen ein unterstütztes Systemfeature auf virtuellen Knoten sein können. Einige Eigenschaften, die diese Systemfeatures ändern, sind auf den virtuellen Knoten nicht verfügbar, da dafür eine Änderung des Hosts erforderlich ist.
| Bezeichnung | Wert | Beispiel/Optionen | Verwendung virtueller Knoten |
|---|---|---|---|
kubernetes.azure.com/agentpool |
<Name des Agentpools> | nodepool1 |
identisch |
kubernetes.io/arch |
<runtime.GOARCH> | amd64 |
– |
kubernetes.io/os |
<OS Type> (Betriebssystemtyp) | Linux/Windows |
identisch |
node.kubernetes.io/instance-type |
<Größe des virtuellen Computers> | Standard_NC6s_v3 |
Virtual |
topology.kubernetes.io/region |
<Azure-Region> | westus2 |
identisch |
topology.kubernetes.io/zone |
<Azure-Zone> | 0 |
identisch |
kubernetes.azure.com/cluster |
<MC_RgName> | MC_aks_myAKSCluster_westus2 |
identisch |
kubernetes.azure.com/managedby |
aks |
aks |
– |
kubernetes.azure.com/mode |
<mode> |
User oder system |
Benutzer |
kubernetes.azure.com/role |
Agent | Agent |
identisch |
kubernetes.azure.com/scalesetpriority |
<VMSS-Priorität> |
spot oder regular |
– |
kubernetes.io/hostname |
<Hostname> | aks-nodepool-00000000-vmss000000 |
identisch |
kubernetes.azure.com/storageprofile |
<Speicherprofil für Betriebssystemdatenträger> | Managed |
– |
kubernetes.azure.com/storagetier |
<Speicherebene für Betriebssystemdatenträger> | Premium_LRS |
– |
kubernetes.azure.com/node-image-version |
<VHD-Version> | AKSUbuntu-1804-2020.03.05 |
Version des virtuellen Knotens |
kubernetes.azure.com/network-name |
<Name des virtuellen Knotenpoolnetzwerks> | vnetName |
Virtuelles Netzwerk des virtuellen Knotens |
kubernetes.azure.com/network-subnet |
<Name des Knotenpoolsubnetzes> | subnetName |
Subnetzname des virtuellen Knotens |
kubernetes.azure.com/ppg |
<PPG-Name des Knotenpools> | ppgName |
– |
kubernetes.azure.com/encrypted-set |
<Name des Verschlüsselungssets für den Knotenpool> | encrypted-set-name |
– |
kubernetes.azure.com/accelerator |
<Beschleuniger> | nvidia |
– |
kubernetes.azure.com/fips_enabled |
<ist FIPS aktiviert?> | true |
– |
kubernetes.azure.com/os-sku |
<Betriebssystem/SKU> | Betriebssystem-SKU erstellen oder aktualisieren | Linux |
kubernetes.azure.com/os-sku-effective |
<Aktuelle Betriebssystem-SKU ausgewählt> |
Ubuntu2204 oder ähnlich (nie Ubuntu, hat immer die angegebene Version) |
– |
kubernetes.azure.com/os-sku-requested |
<Vom Benutzer angeforderte Betriebssystem-SKU> |
Ubuntu, Ubuntu2204, oder ähnliche (genau dem angeforderten SKU aus der API entsprechend) |
– |
kubernetes.azure.com/sku-cpu |
<Anzahl der CPUs> | 4 |
identisch |
kubernetes.azure.com/sku-memory |
<Arbeitsspeicher in GB> | 16 |
identisch |
kubernetes.azure.com/nodepool-type |
<Knotenpooltyp> | VirtualMachineScaleSets |
– |
- Identisch gilt für Stellen, an denen sich die erwarteten Werte für die Bezeichnungen zwischen einem Standardknotenpool und einem virtuellen Knotenpool nicht unterscheiden. Da Pods für virtuelle Knoten keine zugrunde liegenden virtuellen Computer (VM) verfügbar machen, werden die VM-SKU-Werte durch die SKU Virtuell ersetzt.
- Die Version des virtuellen Knotens bezieht sich auf die aktuelle Version des Releases des virtuellen Kubelet-ACI-Connectors.
- Der Subnetzname des virtuellen Knotens ist der Name des Subnetzes, in dem Pods für virtuelle Knoten in ACI (Azure Container Instance) bereitgestellt werden.
- Das virtuelle Netzwerk des virtuellen Knotens ist der Name des virtuellen Netzwerks, das das Subnetz enthält, in dem Pods für virtuelle Knoten in ACI bereitgestellt werden.
- Automatische Knotenbereitstellung (Karpenter) Knoten haben zusätzliche Bezeichnungen, die den entsprechenden Selektoren entsprechen.
-
kubernetes.azure.com/network-nameundkubernetes.azure.com/network-subnetwerden abgeschnitten, wenn die zugrunde liegenden Ressourcennamen länger als 64 Zeichen sind.
Reservierte Präfixe
Die folgenden Präfixe sind reservierte AKS-Präfixe und können nicht für Knoten verwendet werden:
- kubernetes.azure.com/
- kubernetes.io/
Weitere Informationen zu reservierten Präfixen finden Sie unter Bekannte Bezeichnungen, Anmerkungen und Taints in Kubernetes.
Veraltete Bezeichnungen
Die folgenden Bezeichnungen gelten seit der Veröffentlichung von Kubernetes v1.24 als veraltet. Sie sollten alle Verweise auf diese Bezeichnungen in die empfohlene Ersatzbezeichnung ändern.
| Bezeichnung | Empfohlene Ersatzbezeichnung | Maintainer |
|---|---|---|
| failure-domain.beta.kubernetes.io/region | topology.kubernetes.io/region | Kubernetes (Englisch) |
| failure-domain.beta.kubernetes.io/zone | topology.kubernetes.io/zone | Kubernetes (Englisch) |
| beta.kubernetes.io/arch | kubernetes.io/arch | Kubernetes (Englisch) |
| beta.kubernetes.io/instance-type | node.kubernetes.io/instance-type | Kubernetes (Englisch) |
| beta.kubernetes.io/os | kubernetes.io/os | Kubernetes (Englisch) |
| 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 |
| Speicherprofil | kubernetes.azure.com/storageprofile | Azure Kubernetes Service |
| Speicherebene* | kubernetes.azure.com/storagetier | Azure Kubernetes Service |
| Beschleuniger* | kubernetes.azure.com/accelerator | Azure Kubernetes Service |
*Kürzlich veraltet. Weitere Informationen finden Sie in den Versionshinweisen.
Nächste Schritte
Weitere Informationen zu Kubernetes-Bezeichnungen finden Sie in der Dokumentation zu Kubernetes-Bezeichnungen.