Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью Azure Kubernetes Service (AKS) можно задать теги Azure в кластере AKS и связанные с ним ресурсы с помощью Azure Resource Manager и Azure CLI. Можно также использовать манифесты Kubernetes для задания тегов Azure для определенных ресурсов. теги Azure являются полезным ресурсом отслеживания для определенных бизнес-процессов, таких как chargeback.
В этой статье объясняется, как задать теги Azure для кластеров AKS и связанных ресурсов.
Прежде чем начать
Перед началом работы ознакомьтесь со следующими сведениями:
- Теги, заданные в кластере AKS, применяются ко всем ресурсам, связанным с кластером, но не к пулам узлов. Эта операция перезаписывает значения существующих ключей.
- Теги, заданные в пуле узлов, применяются только к ресурсам, связанным с этим пулом узлов. Эта операция перезаписывает значения существующих ключей. Ресурсы за пределами пула узлов, включая ресурсы для остальной части кластера и других пулов узлов, не затрагиваются.
- Общедоступные IP-адреса, файлы и диски могут иметь теги, заданные с помощью Kubernetes в манифесте Kubernetes. Для дисков и файлов, созданных через
StorageClass, параметрtagsприменяется к базовому ресурсу Azure при выделении тома в AKS. ОбновлениеStorageClassпозже влияет только на недавно предоставленные тома. При удалении общедоступных IP-адресов, файлов или дисков через Kubernetes удаляются все теги, заданные Kubernetes. Теги этих ресурсов, которые Kubernetes не отслеживают, остаются не затронутыми.
Предварительные требования
- Azure CLI версии 2.0.59 или более поздней. Чтобы узнать, какая версия используется, выполните команду
az --version. Если необходимо установить или обновить версию, см. раздел Install Azure CLI. - Kubernetes версии 1.20 или более поздней.
Ограничения
- Azure метки используют ключи, которые не зависят от регистра при операциях, например, когда вы получаете метку, осуществляя поиск по ключу. В этом случае тег с указанным ключом обновляется или извлекается независимо от регистра. Значения тегов чувствительны к регистру.
- В AKS, если несколько тегов имеют одинаковые ключи, но разные регистры, теги используются в алфавитном порядке. Например,
{"Key1": "val1", "kEy1": "val2", "key1": "val3"}приводит к установкеKey1иval1. - Для общих ресурсов теги не могут самостоятельно определить разделение использования ресурсов.
- Для дисков и файлов, которые поддерживают персистентный том Kubernetes, спецификация
PersistentVolumeнеизменна после создания. Изменение или исправление существующегоPersistentVolumeдля изменения тегов или других атрибутов тома завершается сбоем. - Обновление тегов непосредственно в базовом ресурсе Azure не синхронизирует эти значения тегов обратно с kubernetes
PersistentVolumeYAML или метаданными.
Кластеры AKS и теги Azure
При создании или обновлении кластера AKS с параметром --tags эти теги Azure назначаются следующим образом:
- Сам кластер AKS и связанные с ней ресурсы:
- Таблица маршрутов
- Общедоступный IP-адрес
- Подсистема балансировки нагрузки
- группу безопасности сети;
- Виртуальная сеть
- Msi kubelet, управляемый AKS
- Управляемая AKS надстройка MSI
- приватная DNS-зона, связанная с кластером private
- Частная конечная точка, связанная с частным кластером
- группа ресурсов узла;
Примечание.
Azure Частная зона DNS поддерживает только 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.
Для дисков и файлов, которые обслуживают постоянный том, значение tags в параметре StorageClass устанавливается во время подготовки. После создания тома спецификация PersistentVolume становится неизменяемой, поэтому редактирование или исправление PV для изменения тегов или других атрибутов тома завершается сбоем. Изменения, внесенные непосредственно в базовый ресурс Azure, не синхронизируются с PV YAML или метаданными.
Теги 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 ...
Обновление тегов для существующих постоянных томов
Чтобы обновить теги для существующего постоянного тома на основе диска или файла, обновите теги в исходном ресурсе Azure, вместо того чтобы редактировать PersistentVolume. Эта операция не прерывает существующие подключения, модули pod или доступ к данным.
Для постоянных томов на основе дисков Azure обновите управляемый диск напрямую. Например:
az disk update \ --name myManagedDisk \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --set tags.abc=ABC123Для Файлы Azure поддерживаемых постоянных томов обновите учетную запись хранения напрямую. Например:
az storage account update \ --name mystorageaccount \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --set tags.abc=ABC123
Изменения в StorageClass влияют только на недавно подготовленные тома и не обновляют существующие постоянные тома.
Следующие шаги
Дополнительные сведения об использовании меток в кластере AKS.