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ą

  1. 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
    
  2. 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ą

  1. 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"
        },
        ...
      },
     ...
    ]
    
  2. 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

  1. 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
    
  2. 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 Użytkownika
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ądzany 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?> true 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.