Как ограничить количество модулей с подключенными управляемыми дисками на узел - PullRequest
0 голосов
/ 25 мая 2018

Представьте, что существует кластер с множеством различных развертываний.Некоторые модули используют PersistentVolumes (диски Azure).В Azure существует ограничение на количество дисков, которые можно подключить к виртуальной машине, и это приводит к ошибкам при планировании, таким как

Status=409 Code="OperationNotAllowed" Message="The maximum number of data disks allowed to be attached to a VM of this size is 8

Блоки остаются в

Waiting: Container creating

состояние навсегда, однако в некоторые моменты времени у некоторых узлов было гораздо меньше блоков с подключенными дисками.Было бы здорово ограничить количество модулей с подключенными дисками на узел, чтобы эта ошибка никогда не возникала.Я считаю, что

podAntiAffinity

- это то, что мне нужно, и я знаю, что могу ограничить модули с одинаковой меткой из расписания на одном и том же узле, но я не знаю, как разрешить его, пока узел не получитмаксимальное количество контейнеров с дисками.

Моя установка AKS.

az acs create \ --orchestrator-type=kubernetes \ --orchestrator-version 1.7.9 \ --resource-group <resource_group_here> \ --name=<name_here> \ ...

1 Ответ

0 голосов
/ 25 июля 2018

KUBE_MAX_PD_VOLS - это то, что вы ищете.По умолчанию это значение равно 16 для Azure Disks .Таким образом, вы можете использовать экземпляры с одинаковым лимитом подключенных дисков (16) или установить для них предпочтительное значение.Вы можете увидеть, где он объявлен в github

. Вы должны установить эту переменную среды в объявлении вашего планировщика.Я нашел свое объявление планировщика в /etc/kubernetes/manifests/kube-scheduler.yaml.Вот как это выглядит сейчас: apiVersion: "v1" kind: "Pod" metadata: name: "kube-scheduler" ... spec: containers: - name: "kube-scheduler" ... env: - name: KUBE_MAX_PD_VOLS value: "8" ...

Примечание spec.containers.env.KUBE_MAX_PD_VOLS параметр - он предотвращает планирование более 8 дисков на каждом узле.

Таким образом, модули распределяются между узлами без каких-либо проблем,модули, которые не могут поместиться, остаются в состоянии ожидания, пока не найдут достаточно узлов для размещения.

...