Použití značek Azure v Azure Kubernetes Service (AKS)

Pomocí Azure Kubernetes Service (AKS) můžete nastavit značky Azure v clusteru AKS a souvisejících prostředcích pomocí Azure Resource Manager a Azure CLI. Manifesty Kubernetes můžete také použít k nastavení Azure značek pro určité prostředky. Azure značky jsou užitečným zdrojem sledování pro určité obchodní procesy, například chargeback.

Tento článek vysvětluje, jak nastavit značky Azure pro clustery AKS a související prostředky.

Než začnete

Než začnete, projděte si následující informace:

  • Značky nastavené v clusteru AKS se vztahují na všechny prostředky spojené s clusterem, ale nikoli na fondy uzlů. Tato operace přepíše hodnoty existujících klíčů.
  • Značky nastavené ve fondu uzlů se vztahují pouze na prostředky související s tímto fondem uzlů. Tato operace přepíše hodnoty existujících klíčů. Prostředky mimo tento fond uzlů, včetně prostředků pro zbytek clusteru a dalších fondů uzlů, nemají vliv.
  • Veřejné IP adresy, soubory a disky můžou mít značky nastavené Kubernetes prostřednictvím manifestu Kubernetes. U disků a souborů vytvořených prostřednictvím StorageClass se parametr tags použije na podkladový prostředek Azure, když AKS zřídí svazek. Později aktualizace StorageClass ovlivní pouze nově zřízené svazky. Když prostřednictvím Kubernetes odeberete veřejné IP adresy, soubory nebo disky, odeberou se všechny značky nastavené Kubernetes. Značky těchto prostředků, které Kubernetes nesleduje, zůstávají nedotčené.

Požadavky

  • Azure CLI verze 2.0.59 nebo novější. Pokud chcete najít svou verzi, spusťte az --versionpříkaz . Pokud ho potřebujete nainstalovat nebo aktualizovat verzi, přečtěte si téma Install Azure CLI.
  • Kubernetes verze 1.20 nebo novější

Omezení

  • Azure značky mají klíče, které nerozlišují malá a velká písmena pro operace, například při načítání značky vyhledáváním klíče. V tomto případě se značka se zadaným klíčem aktualizuje nebo načte bez ohledu na velikost písmen. Hodnoty značek jsou citlivé na velikost písmen.
  • Pokud je v AKS nastaveno více značek se stejnými klíči, ale s různým formátováním velikosti písmen, použijí se značky v abecedním pořadí. Například výsledek {"Key1": "val1", "kEy1": "val2", "key1": "val3"} je nastavení Key1 a val1.
  • U sdílených prostředků nemůžou značky samostatně určit rozdělení využití prostředků.
  • U disků a souborů, které podporují trvalý svazek Kubernetes, je specifikace PersistentVolume po vytvoření neměnná. Úpravy nebo opravy existující PersistentVolume změny značek nebo jiných atributů svazku selžou.
  • Aktualizace značek přímo na podkladovém prostředku Azure nemá za následek synchronizaci těchto hodnot značek zpět do Kubernetes PersistentVolume YAML nebo metadat.

Azure značky a clustery AKS

Při vytváření nebo aktualizaci clusteru AKS pomocí parametru --tags jsou přiřazeny následující značky Azure, které jste zadali:

  • Samotný cluster AKS a související prostředky:
    • Směrovací tabulka
    • Veřejná IP adresa
    • Vyrovnávač zátěže
    • Skupina zabezpečení sítě
    • Virtuální síť
    • Msi kubelet spravované službou AKS
    • Doplněk spravovaný AKS MSI
    • Privátní DNS zóna přidružená k soukromému clusteru
    • Privátní koncový bod přidružený k privátnímu clusteru
  • Skupina prostředků uzlu

Poznámka:

Azure Privátní DNS podporuje jenom 15 značek. Pro více informací se podívejte na zdroje značek.

Vytvoření nebo aktualizace značek v clusteru AKS

Vytvoření nového clusteru AKS

Důležité

Pokud používáte existující prostředky při vytváření nového clusteru, jako je IP adresa nebo směrovací tabulka, az aks create příkaz přepíše sadu značek. Pokud cluster odstraníte později, odeberou se všechny značky nastavené clusterem.

  1. Vytvořte cluster a přiřaďte značky Azure pomocí příkazu az aks create s parametrem --tags.

    Poznámka:

    Pokud chcete nastavit značky pro počáteční fond uzlů, škálovací sadu virtuálních počítačů a každou instanci škálovací sady virtuálních počítačů přidruženou k počátečnímu fondu uzlů, můžete také nastavit --nodepool-tags parametr.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags dept=IT costcenter=9999 \
        --generate-ssh-keys
    
  2. Ověřte pomocí příkazu az aks show, že značky byly aplikovány na cluster a jeho související zdroje.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
    

    Následující příklad výstupu ukazuje značky použité v clusteru:

    {
      "clusterTags": {
        "dept": "IT",
        "costcenter": "9999"
      }
    }
    

Aktualizace existujícího clusteru AKS

Důležité

Nastavení značek v clusteru pomocí příkazu az aks update přepíše stávající sadu značek. Pokud má váš cluster například značky dept=IT a costcenter=9999 a použijete az aks update se značkami tým=alfa a costcenter=1234, nový seznam značek by byl tým=alfa a costcenter=1234.

  1. Aktualizujte značky v existujícím clusteru pomocí příkazu az aks update s parametrem --tags.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags team=alpha costcenter=1234
    
  2. Ověřte pomocí příkazu az aks show, že značky byly aplikovány na cluster a jeho související zdroje.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
    

    Následující příklad výstupu ukazuje značky použité v clusteru:

    {
      "clusterTags": {
        "team": "alpha",
        "costcenter": "1234"
      }
    }
    

Přidejte značky k poolům uzlů

Značku Azure můžete použít u nového nebo existujícího fondu uzlů v clusteru AKS. Značky aplikované na fond uzlů se aplikují na každý uzel ve fondu uzlů a jsou zachovány při aktualizacích. Značky se také použijí na nové uzly přidané do fondu uzlů během operací horizontálního škálování. Přidání značky může pomoct s úlohami, jako je sledování zásad nebo odhad nákladů.

Při vytváření nebo aktualizaci fondu uzlů pomocí parametru --tags jsou vámi zadané značky přiřazeny k následujícím prostředkům:

  • Pool uzlů.
  • Škálovací sada virtuálních počítačů a každá instance škálovací sady virtuálních počítačů přidružená k fondu uzlů.

Vytvoření nového fondu uzlů

  1. Vytvořte fond uzlů se značkou Azure pomocí příkazu az aks nodepool add s parametrem --tags.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --node-count 1 \
        --tags abtest=a costcenter=5555 \
        --no-wait
    
  2. Pomocí příkazu ověřte, že se značky použily ve fondu az aks show uzlů.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'
    

    Následující příklad výstupu ukazuje tagy použité v daném fondu uzlů.

    [
      {
        "nodepoolName": "nodepool1",
        "tags": null
      },
      {
        "nodepoolName": "tagnodepool",
        "tags": {
          "abtest": "a",
          "costcenter": "5555"
        }
      }
    ]
    

Aktualizace existujícího fondu uzlů

Důležité

Nastavení značek ve fondu uzlů pomocí az aks nodepool update příkazu přepíše sadu značek. Pokud má například fond uzlů značky abtest=a a costcenter=5555 a používáte az aks nodepool update se značkami appversion=0.0.2 a costcenter=4444, nový seznam značek bude appversion=0.0.2 a costcenter=4444.

  1. Aktualizujte fond uzlů pomocí Azure tagu pomocí příkazu az aks nodepool update.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --tags appversion=0.0.2 costcenter=4444 \
        --no-wait
    
  2. Ověřte, že značky byly použity ve fondu uzlů pomocí příkazu az aks show.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'
    

    Následující příklad výstupu ukazuje tagy použité v daném fondu uzlů.

    [
      {
        "nodepoolName": "nodepool1",
        "tags": null
      },
      {
        "nodepoolName": "tagnodepool",
        "tags": {
          "appversion": "0.0.2",
          "costcenter": "4444"
        }
      }
    ]
    

Přidání značek pomocí Kubernetes

Důležité

Nastavení značek u souborů, disků a veřejných IP adres pomocí Kubernetes aktualizuje sadu značek. Pokud má například váš disk značky dept=IT a costcenter=5555 a použijete Kubernetes k nastavení značek tým=beta a costcenter=3333, bude nový seznam značek dept=IT, tým=beta a costcenter=3333.

Všechny aktualizace, které provedete u značek prostřednictvím Kubernetes, si zachovají hodnotu nastavenou prostřednictvím Kubernetes. Pokud má například váš disk značky dept=IT a costcenter=5555 nastavené pomocí Kubernetes a vy pomocí portálu nastavíte značky team=beta a costcenter=3333, bude nový seznam značek dept=IT, team=beta a costcenter=5555. Pokud pak disk odeberete přes Kubernetes, bude mít disk značku team=beta.

U disků a souborů, které zálohují trvalý svazek, tags je hodnota v StorageClass nastavení doby zřizování. Po vytvoření svazku je specifikace PersistentVolume neměnná, takže úprava nebo aktualizace PV za účelem změny značek nebo jiných atributů svazku selže. Změny, které provedete přímo v podkladovém Azure prostředku, se nesynchronizují zpět do PV YAML nebo metadat.

Značky Azure můžete použít na veřejné IP adresy, disky a soubory pomocí manifestu Kubernetes.

  • Pro veřejné IP adresy použijte service.beta.kubernetes.io/azure-pip-tags pod poznámkami. Příklad:

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/azure-pip-tags: costcenter=3333,team=beta
    spec:
      ...
    
  • Pro soubory a disky použijte značky pod parametry. Příklad:

    ---
    apiVersion: storage.k8s.io/v1
    ...
    parameters:
      ...
      tags: costcenter=3333,team=beta
    ...
    

Aktualizace značek pro existující trvalé svazky

Pokud chcete aktualizovat značky pro existující trvalý svazek založený na disku nebo na souboru, aktualizujte značky na podkladovém prostředku Azure místo úpravy PersistentVolume. Tato operace nepřeruší stávající připojení, pody ani přístup k datům.

  • U trvalých svazků s Azure diskem aktualizujte spravovaný disk přímo. Příklad:

    az disk update \
        --name myManagedDisk \
        --resource-group MC_myResourceGroup_myAKSCluster_eastus \
        --set tags.abc=ABC123
    
  • U Azure Files trvalých svazků aktualizujte účet úložiště přímo. Příklad:

    az storage account update \
        --name mystorageaccount \
        --resource-group MC_myResourceGroup_myAKSCluster_eastus \
        --set tags.abc=ABC123
    

StorageClass Změny mají vliv pouze na nově zřízené svazky a neaktualizují stávající trvalé svazky.

Další kroky

Přečtěte si další informace o používání popisků v clusteru AKS.