Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если у вас несколько пулов узлов, может потребоваться добавить метку во время создания пула узлов. Метки Kubernetes обрабатывают правила планирования узлов. Вы можете добавлять метки в пул узлов в любое время и применять их ко всем узлам в пуле узлов.
В этом руководстве описано, как использовать метки в кластере Службы Azure Kubernetes (AKS).
Предпосылки
Необходимо установить и настроить Azure CLI версии 2.2.0 или более поздней. Чтобы узнать версию, выполните команду az --version
. Если вам нужно установить или обновить, см. статью "Установка Azure CLI".
Создать кластер AKS с меткой
Кластер AKS можно создать с метками узлов, чтобы задать метаданные ключа или значения для планирования рабочей нагрузки.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="myAKSCluster$RANDOM_SUFFIX"
az group create --name $RESOURCE_GROUP --location $REGION
Результаты:
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx",
"location": "eastus2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Создайте кластер AKS, указывающий метки узлов (например, dept=IT, costcenter=9000):
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER_NAME \
--node-count 2 \
--nodepool-labels dept=IT costcenter=9000 \
--generate-ssh-keys --location $REGION
Результаты:
{
"aadProfile": null,
"addonProfiles": {},
"agentPoolProfiles": [
{
"count": 2,
"enableAutoScaling": null,
"mode": "System",
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
}
],
"dnsPrefix": "myaksclusterxxx-dns",
"fqdn": "myaksclusterxxx-xxxxxxxx.hcp.eastus2.azmk8s.io",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxx",
"location": "eastus2",
"name": "myAKSClusterxxx",
"resourceGroup": "myResourceGroupxxx"
}
Убедитесь, что метки заданы:
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --overwrite-existing
kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Создайте пул узлов с меткой
Вы можете создать дополнительный пул узлов с метками для конкретных потребностей в планировании.
export NODEPOOL_NAME="labelnp"
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--node-count 1 \
--labels dept=HR costcenter=5000 \
Ниже приведен пример выходных данных командыaz aks nodepool list
, в которой показан пул узлов labelnp: создание узлов с указанными nodeLabels:
az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $AKS_CLUSTER_NAME
Результаты:
[
{
"count": 2,
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
},
{
"count": 1,
"name": "labelnp",
"nodeLabels": {
"costcenter": "5000",
"dept": "HR"
},
"provisioningState": "Creating"
}
]
Убедитесь, что метки установлены:
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Обновление меток в существующих пулах узлов
Метки можно обновить в существующем пуле узлов. Обратите внимание, что обновление меток перезаписывает старые метки.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--labels dept=ACCT costcenter=6000 \
Убедитесь, что установлены новые метки:
kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Недоступные метки
Зарезервированные системные метки
С момента выпуска AKS 2021-08-19 AKS прекратил возможность внесения изменений в зарезервированные метки AKS. Попытка изменить эти метки приводит к возникновению сообщения об ошибке.
Ниже приведены зарезервированные метки AKS. Использование виртуальных узлов указывает, могут ли эти метки быть поддерживаемой системной функцией на виртуальных узлах. Некоторые свойства, которые изменяются системными функциями, недоступны на виртуальных узлах, так как требуется изменение хоста.
Этикетка | Ценность | Пример/варианты | Использование виртуальных узлов |
---|---|---|---|
kubernetes.azure.com/agentpool | <Имя пула агентов> | nodepool1 | Тот же |
kubernetes.io/arch | amd64 | Среды выполнения. 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/managedby | акс | акс | Не применимо |
kubernetes.azure.com/mode | <режим> | Пользователь или система | Пользователь |
kubernetes.azure.com/role | agent | Агент | Тот же |
kubernetes.azure.com/scalesetpriority | <Приоритет VMSS> | Спот или регулярный | Не применимо |
kubernetes.io/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 | <Имя подсети nodepool> | Имя подсети | Имя подсети виртуального узла |
kubernetes.azure.com/vnet | <Имя виртуальной сети nodepool> | имя виртуальной сети | Виртуальная сеть виртуального узла |
kubernetes.azure.com/ppg | <nodepool ppg имя> | ppgName | Не применимо |
kubernetes.azure.com/encrypted-set | <имя зашифрованного набора nodepool> | зашифрованное-имя-набора | Не применимо |
kubernetes.azure.com/accelerator | <акселератор> | NVIDIA | Не применимо |
kubernetes.azure.com/fips_enabled | <включена ли fips?> | правда | Не применимо |
kubernetes.azure.com/os-sku | <os/sku> | Создание или обновление номера SKU ОС | Линукс |
- «Такое же» включено в местах, где ожидаемые значения меток не отличаются между стандартным пулом узлов и пулом виртуальных узлов. Так как поды виртуального узла не предоставляют никаких базовых виртуальных машин, значения SKU виртуальной машины заменяются виртуальным SKU.
- Версия виртуального узла относится к текущей версии виртуального выпуска соединителя Kubelet-ACI.
- Имя подсети виртуального узла — это имя подсети, где виртуальные узлы-pod развертываются в службе Azure Container Instance (ACI).
- Виртуальная сеть виртуального узла — это имя виртуальной сети, которая содержит подсеть, в которой развернуты поды виртуального узла в ACI.
Зарезервированные префиксы
Следующие префиксы являются зарезервированными префиксами AKS и не могут использоваться для любого узла:
- kubernetes.azure.com/
- kubernetes.io/
Дополнительные сведения о зарезервированных префиксах см. в разделе Известные метки, аннотации и метки-дефекты Kubernetes.
Устаревшие метки
Следующие ярлыки планируется устранить в Kubernetes v1.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 Service |
kubernetes.io/role* | kubernetes.azure.com/role=agent | Azure Kubernetes Service |
Agentpool* | kubernetes.azure.com/agentpool | Azure Kubernetes Service |
Профиль хранения | kubernetes.azure.com/storageprofile | Azure Kubernetes Service |
Storagetier* | kubernetes.azure.com/storagetier | Azure Kubernetes Service |
Акселератор* | kubernetes.azure.com/accelerator | Azure Kubernetes Service |
Недавно объявлено устаревшим. Дополнительные сведения см. в заметках о выпуске.
Дальнейшие шаги
Дополнительные сведения о метках Kubernetes см. в документации по меткам Kubernetes.
Azure Kubernetes Service