Использование тегов 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
команда перезаписывает набор тегов. При удалении кластера позже все теги, заданные кластером, удаляются.
Создайте кластер и назначьте теги Azure с помощью
az aks create
команды с параметром--tags
.Примечание.
Чтобы задать теги в исходном пуле узлов, масштабируемый набор виртуальных машин и каждый экземпляр масштабируемого набора виртуальных машин, связанный с начальным пулом узлов, можно также задать
--nodepool-tags
параметр.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --tags dept=IT costcenter=9999 \ --generate-ssh-keys
Убедитесь, что теги были применены к кластеру и связанным ресурсам с помощью
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.
Обновите теги в существующем кластере с помощью
az aks update
команды с параметром--tags
.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --tags team=alpha costcenter=1234
Убедитесь, что теги были применены к кластеру и связанным ресурсам с помощью
az aks show
команды.az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
В следующем примере выходных данных показаны теги, примененные к кластеру:
{ "clusterTags": { "team": "alpha", "costcenter": "1234" } }
Добавление тегов в пулы узлов
Можно применить тег Azure к новому или существующему пулу узлов в кластере AKS. Теги, применяемые к пулу узлов, применяются к каждому узлу в пуле узлов и сохраняются при обновлении. Теги также применяются к новым узлам, добавленным в пул узлов во время операций горизонтального увеличения масштаба. Добавление тега может помочь в таких задачах, как отслеживание политик или оценка затрат.
При создании или обновлении пула узлов с --tags
параметром указанные теги назначаются следующим ресурсам:
- Пул узлов.
- Масштабируемый набор виртуальных машин и каждый экземпляр масштабируемого набора виртуальных машин, связанный с пулом узлов.
Создание пула узлов
Создайте пул узлов с тегом 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
Убедитесь, что теги были применены к пулу
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.
Обновите пул узлов с тегом 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
Убедитесь, что теги были применены к пулу
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.
Azure Kubernetes Service