Używanie etykiet w klastrze usługi Azure Kubernetes Service (AKS)
Jeśli masz wiele pul węzłów, podczas tworzenia puli węzłów warto dodać etykietę. Etykiety platformy Kubernetes obsługują reguły 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 w puli węzłów.
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.
Tworzenie klastra usługi AKS z etykietą
Utwórz klaster usługi AKS z etykietą przy użyciu
az aks create
polecenia i określ--node-labels
parametr, aby ustawić etykiety. Etykiety muszą być parą klucz/wartość i mieć prawidłową składnię.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --nodepool-labels dept=IT costcenter=9000 \ --generate-ssh-keys
Sprawdź, czy etykiety zostały ustawione przy użyciu
kubectl get nodes --show-labels
polecenia .kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Tworzenie puli węzłów z etykietą
Utwórz pulę węzłów z etykietą przy użyciu
az aks nodepool add
polecenia i określ nazwę--name
parametrów i etykiet parametru--labels
. Etykiety muszą być parą klucz/wartość i mieć prawidłową składnięPoniższe przykładowe polecenie tworzy pulę węzłów o nazwie labelnp z etykietami dept=HR i costcenter=5000.
az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --node-count 1 \ --labels dept=HR costcenter=5000 \ --no-wait
Następujące przykładowe dane wyjściowe polecenia
az aks nodepool list
pokazują, że pula węzłów labelnp to Tworzenie węzłów z określonym węzłemLabels:[ { ... "count": 1, ... "name": "labelnp", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeLabels": { "costcenter": "5000", "dept": "HR" }, ... }, ... ]
Sprawdź, czy etykiety zostały ustawione przy użyciu
kubectl get nodes --show-labels
polecenia .kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Aktualizowanie etykiet dla istniejących pul węzłów
Zaktualizuj etykietę w istniejącej puli węzłów przy użyciu
az aks nodepool update
polecenia . Aktualizowanie etykiet w istniejących pulach węzłów zastępuje stare etykiety nowymi etykietami. Etykiety muszą być parą klucz/wartość i mieć prawidłową składnię.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --labels dept=ACCT costcenter=6000 \ --no-wait
Sprawdź, czy etykiety zostały ustawione przy użyciu
kubectl get nodes --show-labels
polecenia .kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Niedostępne etykiety
Zastrzeżone etykiety systemowe
Od czasu wydania usługi AKS 2021-08-19 usługa AKS przestała wprowadzać zmiany w etykietach zarezerwowanych usługi AKS. Próba zmiany tych etykiet powoduje wyświetlenie komunikatu o błędzie.
Poniższe etykiety to etykiety zarezerwowane usługi 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 | amd64 | Środowiska wykonawczego. GOARCH | 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 platformy Azure> | 0 | To samo |
kubernetes.azure.com/cluster | <MC_RgName> | MC_aks_myAKSCluster_westus2 | To samo |
kubernetes.azure.com/mode | <tryb> | Użytkownik lub system | User |
kubernetes.azure.com/role | agent | Agent | To samo |
kubernetes.azure.com/scalesetpriority | <Priorytet usługi VMSS> | Punkt lub zwykły | Nie dotyczy |
kubernetes.io/hostname | <nazwa hosta> | aks-nodepool-000000000-vmss000000 | To samo |
kubernetes.azure.com/storageprofile | <Profil magazynu dysku systemu operacyjnego> | Zarządzana | Nie dotyczy |
kubernetes.azure.com/storagetier | <Warstwa magazynowania dysku systemu operacyjnego> | Premium_LRS | Nie dotyczy |
kubernetes.azure.com/instance-sku | <Rodzina jednostek SKU> | Standard_N | Wirtualne |
kubernetes.azure.com/node-image-version | <Wersja wirtualnego dysku twardego> | AKSUbuntu-1804-2020.03.05 | Wersja węzła wirtualnego |
kubernetes.azure.com/subnet | <nazwa podsieci nodepool> | subnetName | Nazwa podsieci węzła wirtualnego |
kubernetes.azure.com/vnet | <nazwa sieci wirtualnej puli węzłów> | vnetName | Sieć wirtualna węzła wirtualnego |
kubernetes.azure.com/ppg | <nazwa ppg puli węzłów> | 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 fips jest włączony?> | prawda | Nie dotyczy |
kubernetes.azure.com/os-sku | <os/sku> | Tworzenie lub aktualizowanie jednostki SKU systemu operacyjnego | Linux |
- 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 wirtualnymi jednostkami SKU.
- 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.
Prefiksy zarezerwowane
Następujące prefiksy to prefiksy zarezerwowane usługi AKS i nie można ich używać w żadnym węźle:
- kubernetes.azure.com/
- kubernetes.io/
Aby uzyskać więcej informacji na temat prefiksów zarezerwowanych, zobacz Dobrze znane etykiety, adnotacje i defekty platformy Kubernetes.
Przestarzałe etykiety
Następujące etykiety są planowane do wycofania wraz z wydaniem platformy Kubernetes w wersji 1.24. Należy zmienić wszelkie odwołania do etykiet do zalecanego zastąpienia.
Etykieta | Zalecany zamiennik | narzędzi do |
---|---|---|
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 |
Pula agentów* | kubernetes.azure.com/agentpool | Azure Kubernetes Service |
Storageprofile* | kubernetes.azure.com/storageprofile | Azure Kubernetes Service |
Storagetier* | kubernetes.azure.com/storagetier | Azure Kubernetes Service |
Akcelerator* | kubernetes.azure.com/accelerator | Azure Kubernetes Service |
*Nowo przestarzałe. Aby uzyskać więcej informacji, zobacz Informacje o wersji.
Następne kroki
Dowiedz się więcej o etykietach kubernetes w dokumentacji etykiet Kubernetes.
Azure Kubernetes Service