Использование тегов 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 -g myResourceGroup -n 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 -g myResourceGroup -n 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 -g myResourceGroup -n 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 -g myResourceGroup -n 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.