Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli masz wiele pul węzłów, podczas tworzenia puli węzłów warto dodać etykietę. Etykiety platformy Kubernetes zarządzają regułami planowania dla węzłów. Etykiety można dodawać do puli węzłów w dowolnym momencie i stosować je do wszystkich węzłów tej puli.
Z tego przewodnika z instrukcjami dowiesz się, jak używać etykiet w klastrze usługi Azure Kubernetes Service (AKS).
Wymagania wstępne
Potrzebny jest interfejs wiersza polecenia platformy Azure w wersji 2.2.0 lub nowszej zainstalowany i skonfigurowany. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Utwórz klaster AKS z etykietą
Można utworzyć klaster AKS z etykietami węzłów, aby ustawić metadane klucz/wartość na potrzeby planowania obciążenia.
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
Wyniki:
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx",
"location": "eastus2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Utwórz klaster usługi AKS określający etykiety węzłów (np. 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
Wyniki:
{
"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"
}
Sprawdź, czy etykiety zostały ustawione:
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"
Utwórz pulę węzłów z etykietą
Możesz utworzyć dodatkową pulę węzłów z etykietami dla określonych potrzeb planowania.
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
Poniżej przedstawiono przykładowe dane wyjściowe z polecenia az aks nodepool list, pokazujące, że pula węzłów labelnp jest w trakcie tworzenia węzłów z określonymi etykietami węzłów:
az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $AKS_CLUSTER_NAME
Wyniki:
[
{
"count": 2,
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
},
{
"count": 1,
"name": "labelnp",
"nodeLabels": {
"costcenter": "5000",
"dept": "HR"
},
"provisioningState": "Creating"
}
]
Sprawdź, czy etykiety zostały ustawione:
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Aktualizowanie etykiet dla istniejących pul węzłów
Etykiety można zaktualizować dla istniejącej puli węzłów. Należy pamiętać, że aktualizowanie etykiet spowoduje zastąpienie starych etykiet.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--labels dept=ACCT costcenter=6000
Sprawdź, czy nowe etykiety są ustawione:
kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Niedostępne etykiety
Zastrzeżone etykiety systemowe
Od wydania AKS z dnia 2021-08-19, AKS przestało umożliwiać wprowadzanie zmian w zarezerwowanych etykietach AKS. Próba zmiany tych etykiet powoduje wyświetlenie komunikatu o błędzie.
Poniższe etykiety są zarezerwowane przez AKS. Użycie węzła wirtualnego określa, czy te etykiety mogą być obsługiwaną funkcją systemową w węzłach wirtualnych. Niektóre właściwości, które zmieniają się w tych funkcjach systemowych, nie są dostępne w węzłach wirtualnych, ponieważ wymagają modyfikacji hosta.
| Etykieta | Wartość | Przykład/Opcje | Użycie węzła wirtualnego |
|---|---|---|---|
kubernetes.azure.com/agentpool |
<nazwa puli agentów> | nodepool1 |
To samo |
kubernetes.io/arch |
<środowisko wykonawcze GOARCH> | amd64 |
Nie dotyczy |
kubernetes.io/os |
<Typ systemu operacyjnego> | Linux/Windows |
To samo |
node.kubernetes.io/instance-type |
<Rozmiar maszyny wirtualnej> | Standard_NC6s_v3 |
Wirtualne |
topology.kubernetes.io/region |
<Region systemu Azure> | westus2 |
To samo |
topology.kubernetes.io/zone |
<Strefa Azure> | 0 |
To samo |
kubernetes.azure.com/cluster |
<MC_RgName> | MC_aks_myAKSCluster_westus2 |
To samo |
kubernetes.azure.com/managedby |
aks |
aks |
Nie dotyczy |
kubernetes.azure.com/mode |
<tryb> |
User lub system |
Użytkownik |
kubernetes.azure.com/role |
agent | Agent |
To samo |
kubernetes.azure.com/scalesetpriority |
<Priorytet usługi VMSS> |
spot lub regular |
Nie dotyczy |
kubernetes.io/hostname |
<nazwa hosta> | aks-nodepool-00000000-vmss000000 |
To samo |
kubernetes.azure.com/storageprofile |
<Profil magazynu dysku systemu operacyjnego> | Managed |
Nie dotyczy |
kubernetes.azure.com/storagetier |
<Warstwa magazynowania dysku systemu operacyjnego> | Premium_LRS |
Nie dotyczy |
kubernetes.azure.com/node-image-version |
<Wersja VHD> | AKSUbuntu-1804-2020.03.05 |
Wersja węzła wirtualnego |
kubernetes.azure.com/network-name |
<nazwa sieci wirtualnej puli węzłów> | vnetName |
Sieć wirtualna węzła wirtualnego |
kubernetes.azure.com/network-subnet |
<nazwa podsieci nodepool> | subnetName |
Nazwa podsieci węzła wirtualnego |
kubernetes.azure.com/ppg |
<nazwa puli węzłów ppg> | ppgName |
Nie dotyczy |
kubernetes.azure.com/encrypted-set |
<nazwa zestawu szyfrowanego puli węzłów> | encrypted-set-name |
Nie dotyczy |
kubernetes.azure.com/accelerator |
<akcelerator> | nvidia |
Nie dotyczy |
kubernetes.azure.com/fips_enabled |
<czy włączono standard FIPS?> | true |
Nie dotyczy |
kubernetes.azure.com/os-sku |
<os/sku> | Twórz lub aktualizuj SKU systemu operacyjnego | Linux |
kubernetes.azure.com/os-sku-effective |
<wybrana rzeczywista jednostka SKU systemu operacyjnego> |
Ubuntu2204 lub podobne (nigdy Ubuntu; zawsze z określoną wersją) |
Nie dotyczy |
kubernetes.azure.com/os-sku-requested |
<użytkownik zażądał jednostki SKU systemu operacyjnego> |
Ubuntu, Ubuntu2204 lub podobne (dokładnie pasuje do żądanego SKU z interfejsu API) |
Nie dotyczy |
kubernetes.azure.com/sku-cpu |
<ilość procesorów> | 4 |
To samo |
kubernetes.azure.com/sku-memory |
<pamięć w GB> | 16 |
To samo |
kubernetes.azure.com/nodepool-type |
<typ puli węzłów> | VirtualMachineScaleSets |
Nie dotyczy |
- To samo dotyczy miejsc, w których oczekiwane wartości etykiet nie różnią się między standardową pulą węzłów a pulą węzłów wirtualnych. Ponieważ zasobniki węzłów wirtualnych nie uwidaczniają żadnej bazowej maszyny wirtualnej, wartości jednostki SKU maszyny wirtualnej są zastępowane jednostką SKU Virtual.
- Wersja węzła wirtualnego odnosi się do bieżącej wersji wirtualnego łącznika Kubelet-ACI.
- Nazwa podsieci węzła wirtualnego to nazwa podsieci, w której zasobniki węzłów wirtualnych są wdrażane w usłudze Azure Container Instance (ACI).
- Sieć wirtualna węzła wirtualnego to nazwa sieci wirtualnej, która zawiera podsieć, w której są wdrażane zasobniki węzłów wirtualnych w usłudze ACI.
- Automatyczne provisionowanie węzłów (Karpenter) mają dodatkowe etykiety odpowiadające obsługiwanym selektorom.
-
kubernetes.azure.com/network-nameikubernetes.azure.com/network-subnetzostanie obcięty, jeśli nazwy zasobów bazowych są dłuższe niż 64 znaki.
Prefiksy zarezerwowane
Następujące prefiksy są zarezerwowane dla usługi AKS i nie można ich używać na żadnym węźle:
- kubernetes.azure.com/
- kubernetes.io/
Aby uzyskać więcej informacji na temat zarezerwowanych prefiksów, zobacz Dobrze znane etykiety, adnotacje i skażenia platformy Kubernetes.
Przestarzałe etykiety
Następujące etykiety są planowane do wycofania przy wydaniu Kubernetes w wersji 1.24. Należy zmienić wszelkie odwołania do etykiet na zalecane zamienniki.
*Ostatnio wycofane. Aby uzyskać więcej informacji, zobacz Uwaga do wydania.
Następne kroki
Dowiedz się więcej o etykietach Kubernetes w dokumentacji etykiet Kubernetes.