Использование тегов Azure в Службе Azure Kubernetes (AKS)

С помощью Служба Azure Kubernetes (AKS) вы можете задать теги Azure в кластере AKS и связанные с ним ресурсы с помощью Azure Resource Manager и Azure CLI. Вы также можете использовать манифесты Kubernetes для задания тегов Azure для определенных ресурсов. Теги Azure — это полезный ресурс отслеживания для определенных бизнес-процессов, например для возвратных платежей.

В этой статье объясняется, как задать теги Azure для кластеров AKS и связанных ресурсов.

Подготовка к работе

Перед началом работы ознакомьтесь со следующими сведениями:

  • Теги, заданные в кластере AKS, применяются ко всем ресурсам, связанным с кластером, но не к пулам узлов. Эта операция перезаписывает значения существующих ключей.
  • Теги, заданные в пуле узлов, применяются только к ресурсам, связанным с этим пулом узлов. Эта операция перезаписывает значения существующих ключей. Ресурсы за пределами пула узлов, включая ресурсы для остальной части кластера и других пулов узлов, не затрагиваются.
  • Общедоступные IP-адреса, файлы и диски могут иметь теги, заданные с помощью Kubernetes в манифесте Kubernetes. Теги, заданные таким образом, поддерживают значения Kubernetes, даже если они обновляются позже с помощью другого метода. При удалении общедоступных IP-адресов, файлов или дисков через Kubernetes удаляются все теги, заданные Kubernetes. Теги этих ресурсов, которые Kubernetes не отслеживают, остаются не затронутыми.

Необходимые компоненты

  • Azure CLI версии 2.0.59 или более поздней. Чтобы узнать, какая версия используется, выполните команду az --version. Если необходимо установить или обновить версию, см. раздел Установка Azure CLI.
  • Kubernetes версии 1.20 или более поздней.

Ограничения

  • Теги Azure содержат ключи, которые не учитывают регистр при выполнении операций, например при извлечении тега путем поиска по ключу. В этом случае тег с указанным ключом обновляется или извлекается независимо от регистра. Значения тегов чувствительны к регистру.
  • В AKS, если несколько тегов имеют одинаковые ключи, но различаются по регистру, теги используются в алфавитном порядке. Например, при задании {"Key1": "val1", "kEy1": "val2", "key1": "val3"} будут использоваться Key1 и val1.
  • Для общих ресурсов теги не могут самостоятельно определить разделение использования ресурсов.

Теги Azure и кластеры AKS

При создании или обновлении кластера AKS с --tags параметром назначаются указанные теги Azure:

  • Сам кластер AKS и связанные с ней ресурсы:
    • Таблица маршрутов
    • Общедоступный IP-адрес
    • Подсистема балансировки нагрузки
    • группу безопасности сети;
    • Виртуальная сеть
    • Msi kubelet, управляемый AKS
    • MSI управляемых AKS надстройки
    • Частная зона DNS зона, связанная с частным кластером
    • Частная конечная точка, связанная с частным кластером
  • группа ресурсов узла;

Примечание.

Частная зона DNS Azure поддерживает только 15 тегов. Дополнительные сведения см. в ресурсах тегов.

Создание или обновление тегов в кластере AKS

Создание кластера AKS.

Внимание

Если при создании нового кластера используются существующие ресурсы, например IP-адрес или таблица маршрутов, az aks create команда перезаписывает набор тегов. При удалении кластера позже все теги, заданные кластером, удаляются.

  1. Создайте кластер и назначьте теги Azure с помощью az aks create команды с параметром --tags .

    Примечание.

    Чтобы задать теги в исходном пуле узлов, масштабируемый набор виртуальных машин и каждый экземпляр масштабируемого набора виртуальных машин, связанный с начальным пулом узлов, можно также задать --nodepool-tags параметр.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags dept=IT costcenter=9999 \
        --generate-ssh-keys
    
  2. Убедитесь, что теги были применены к кластеру и связанным ресурсам с помощью az aks show команды.

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

    В следующем примере выходных данных показаны теги, примененные к кластеру:

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

Обновление существующего кластера AKS

Внимание

Задание тегов в кластере с помощью az aks update команды перезаписывает набор тегов. Например, если в кластере есть теги dept=IT и costcenter=9999, и вы используете с az aks update тегами team=alpha и costcenter=1234, новый список тегов будет team=alpha и costcenter=1234.

  1. Обновите теги в существующем кластере с помощью az aks update команды с параметром --tags .

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags team=alpha costcenter=1234
    
  2. Убедитесь, что теги были применены к кластеру и связанным ресурсам с помощью az aks show команды.

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

    В следующем примере выходных данных показаны теги, примененные к кластеру:

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

Добавление тегов в пулы узлов

Можно применить тег Azure к новому или существующему пулу узлов в кластере AKS. Теги, применяемые к пулу узлов, применяются к каждому узлу в пуле узлов и сохраняются при обновлении. Теги также применяются к новым узлам, добавленным в пул узлов во время операций горизонтального увеличения масштаба. Добавление тега может помочь в таких задачах, как отслеживание политик или оценка затрат.

При создании или обновлении пула узлов с --tags параметром указанные теги назначаются следующим ресурсам:

  • Пул узлов.
  • Масштабируемый набор виртуальных машин и каждый экземпляр масштабируемого набора виртуальных машин, связанный с пулом узлов.

Создание пула узлов

  1. Создайте пул узлов с тегом Azure с помощью az aks nodepool add команды с параметром --tags .

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --node-count 1 \
        --tags abtest=a costcenter=5555 \
        --no-wait
    
  2. Убедитесь, что теги были применены к пулу az aks show узлов с помощью команды.

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

    В следующем примере выходных данных показаны теги, примененные к пулу узлов:

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

Обновление существующего пула узлов

Внимание

Задание тегов в пуле узлов с помощью az aks nodepool update команды перезаписывает набор тегов. Например, если в пуле узлов есть теги abtest=a и costcenter=5555, и вы используете команду az aks nodepool update с тегами appversion=0.0.2 и costcenter=4444, новый список тегов будет таким: appversion=0.0.2 и costcenter=4444.

  1. Обновите пул узлов с тегом Azure с помощью 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. Убедитесь, что теги были применены к пулу az aks show узлов с помощью команды.

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

    В следующем примере выходных данных показаны теги, примененные к пулу узлов:

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

Добавление тегов с помощью Kubernetes

Внимание

Установка тегов в файлах, дисках и общедоступных IP-адресах с помощью Kubernetes обновляет набор тегов. Например, если в диске есть теги dept=IT и costcenter=5555 и вы использовали Kubernetes для установки тегов team=beta и costcenter=3333, новый список тегов таким: dept=IT, team=beta и costcenter=3333.

Все обновления, внесенные в теги через Kubernetes, сохраняют значение, заданное через Kubernetes. Например, если в диске есть теги dept=IT и costcenter=5555, установленные Kubernetes, и вы использовали портал для установки тегов team=beta и costcenter=3333, новый список тегов таким: dept=IT, team=beta и costcenter=5555. Если после этого вы удалите диск с помощью Kubernetes, у диска останется тег team=beta.

Теги Azure можно применять к общедоступным IP-адресам, дискам и файлам с помощью манифеста Kubernetes.

  • Для общедоступных IP-адресов используйте service.beta.kubernetes.io/azure-pip-tags в заметках. Например:

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/azure-pip-tags: costcenter=3333,team=beta
    spec:
      ...
    
  • Для файлов и дисков используйте tags в разделе parameters. Например:

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

Следующие шаги

Дополнительные сведения об использовании меток в кластере AKS.