Использование меток в кластере Службы Azure Kubernetes (AKS)
При наличии нескольких пулов узлов может потребоваться добавить метку во время создания пула узлов. Метки Kubernetes обрабатывают правила планирования узлов. Вы можете добавлять метки в пул узлов в любое время и применять их ко всем узлам в пуле узлов.
В этом руководстве описано, как использовать метки в кластере Служба Azure Kubernetes (AKS).
Необходимые компоненты
Необходимо установить и настроить Azure CLI версии 2.2.0 или более поздней. Чтобы узнать версию, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Создание кластера AKS с меткой
Создайте кластер AKS с меткой с помощью
az aks create
команды и укажите параметр для задания--node-labels
меток. Метки также должны быть парой "ключ-значение" и иметь допустимый синтаксис.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --nodepool-labels dept=IT costcenter=9000 \ --generate-ssh-keys
Убедитесь, что метки были заданы с помощью
kubectl get nodes --show-labels
команды.kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Создание пула узлов с меткой
Создайте пул узлов с меткой с помощью
az aks nodepool add
команды и укажите имя--name
параметров и меток для--labels
параметра. Метки также должны быть парой "ключ-значение" и иметь допустимый синтаксис.В следующем примере команды создается пул узлов с именем labelnp с метками dept=HR и costcenter=5000.
az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --node-count 1 \ --labels dept=HR costcenter=5000 \ --no-wait
В следующем примере выходных данных команды
az aks nodepool list
показано, что пул узлов labelnp — создание узлов с указанными nodeLabels:[ { ... "count": 1, ... "name": "labelnp", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeLabels": { "costcenter": "5000", "dept": "HR" }, ... }, ... ]
Убедитесь, что метки были заданы с помощью
kubectl get nodes --show-labels
команды.kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Обновление меток на существующих пулах узлов
Обновите метку в существующем пуле
az aks nodepool update
узлов с помощью команды. Обновление меток в существующих пулах узлов перезаписывает старые метки новыми метками. Метки также должны быть парой "ключ-значение" и иметь допустимый синтаксис.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --labels dept=ACCT costcenter=6000 \ --no-wait
Убедитесь, что метки были заданы с помощью
kubectl get nodes --show-labels
команды.kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Недоступные метки
Зарезервированные системные метки
С момента выпуска AKS 2021-08-19 AKS AKS перестал вносить изменения в зарезервированные метки AKS. Попытка изменить эти метки приводит к возникновению сообщения об ошибке.
Ниже приведены зарезервированные метки AKS. Использование виртуальных узлов указывает, могут ли эти метки поддерживать системную функцию на виртуальных узлах. Некоторые свойства, которые изменяются системными функциями, недоступны на виртуальных узлах, так как им требуется изменить узел.
Название | Значение | Пример или варианты | Использование виртуального узла |
---|---|---|---|
kubernetes.azure.com/agentpool | <Имя пула агента> | nodepool1 | Одинаковые |
kubernetes.io/arch | amd64 | runtime.GOARCH | Н/П |
kubernetes.io/os | <Тип ОС.> | Linux/Windows | Одинаковые |
node.kubernetes.io/instance-type | <Размер виртуальной машины> | Standard_NC6s_v3 | Виртуальная |
topology.kubernetes.io/region | <Регион Azure> | westus2 | Одинаковые |
topology.kubernetes.io/zone | <Зона Azure> | 0 | Одинаковые |
kubernetes.azure.com/cluster | <MC_RgName> | MC_aks_myAKSCluster_westus2 | Одинаковые |
kubernetes.azure.com/mode | <mode> | Пользователь или система | User |
kubernetes.azure.com/role | агент | Агент | Одинаковые |
kubernetes.azure.com/scalesetpriority | <Приоритет VMSS> | Точечная или обычная | Н/П |
kubernetes.io/hostname | <hostname> | aks-nodepool-00000000-vmss000000 | Одинаковые |
kubernetes.azure.com/storageprofile | <Профиль хранения диска ОС> | Управляется | Н/П |
kubernetes.azure.com/storagetier | <Уровень хранения диска ОС> | Premium_LRS | Н/П |
kubernetes.azure.com/instance-sku | <Семейство SKU> | Standard_N | Виртуальная |
kubernetes.azure.com/node-image-version | <Версия VHD> | AKSUbuntu-1804-2020.03.05 | Версия виртуального узла |
kubernetes.azure.com/subnet | <Имя подсети пула узлов> | subnetName | Имя подсети виртуального узла |
kubernetes.azure.com/vnet | <Имя виртуальной сети пула узлов> | vnetName | Виртуальная сеть виртуального узла |
kubernetes.azure.com/ppg | <Имя ppg пула узлов> | ppgName | Н/П |
kubernetes.azure.com/encrypted-set | <Имя зашифрованного набора пула узлов> | encrypted-set-name | Н/П |
kubernetes.azure.com/accelerator | <Ускоритель> | NVIDIA | Н/П |
kubernetes.azure.com/fips_enabled | <Включена ли поддержка FIPS?> | true | Н/П |
kubernetes.azure.com/os-sku | <ОС или SKU> | Создание или обновление номера SKU для ОС | Linux |
- Вариант Аналогично указывается там, где ожидаемые значения меток совпадают в стандартном пуле узлов и пуле виртуальных узлов. Поскольку объекты pod виртуальных узлов не предоставляют ни одной виртуальной машины, значения номера SKU виртуальной машины заменяются номером SKU Виртуальная.
- Версия виртуального узла — это текущая версия выпуска виртуального соединителя Kubelet-ACI.
- Имя подсети виртуального узла — это имя подсети, в которой объекты pod виртуальных узлов развертываются в Экземпляр контейнера Azure (ACI).
- Виртуальная сеть виртуального узла — это имя виртуальной сети, которая содержит подсеть, в которой объекты pod виртуальных узлов развертываются в ACI.
Зарезервированные префиксы
Следующие префиксы являются зарезервированными префиксами AKS и не могут использоваться для любого узла:
- kubernetes.azure.com/
- kubernetes.io/
Дополнительные сведения о зарезервированных префиксах см. в разделе "Известные метки Kubernetes", "заметки" и "Заметки".
Нерекомендуемые метки
Следующие метки планируется указать как нерекомендуемые в выпуске Kubernetes версии 1.24. Вы должны изменить ссылки на метки на рекомендуемую замену.
Этикетка | Рекомендуемые варианты замены | Ответственный за команду |
---|---|---|
failure-domain.beta.kubernetes.io/region | topology.kubernetes.io/region | Kubernetes |
failure-domain.beta.kubernetes.io/zone | topology.kubernetes.io/zone | Kubernetes |
beta.kubernetes.io/arch | kubernetes.io/arch | Kubernetes |
beta.kubernetes.io/instance-type | node.kubernetes.io/instance-type | Kubernetes |
beta.kubernetes.io/os | kubernetes.io/os | Kubernetes |
node-role.kubernetes.io/agent* | kubernetes.azure.com/role=agent | Служба Azure Kubernetes |
kubernetes.io/role* | kubernetes.azure.com/role=agent | Служба Azure Kubernetes |
Agentpool* | kubernetes.azure.com/agentpool | Служба Azure Kubernetes |
Storageprofile* | kubernetes.azure.com/storageprofile | Служба Azure Kubernetes |
Storagetier* | kubernetes.azure.com/storagetier | Служба Azure Kubernetes |
Accelerator* | kubernetes.azure.com/accelerator | Служба Azure Kubernetes |
*Не рекомендуется использовать. Дополнительные сведения см. в заметках о выпуске.
Следующие шаги
Дополнительные сведения о метках Kubernetes см. в документации по меткам Kubernetes.
Azure Kubernetes Service