Создание Deployment и PersistentVolumeClaim с динамическими утверждениями, поддерживаемыми AWS EBS

#kubernetes #persistent-volumes #aws-ebs

#kubernetes #постоянные тома #aws-ebs

Вопрос:

Я создаю Deployment с volumeMount, который ссылается на PersistentVolumeClaim вместе с запросом памяти в кластере с узлами в 3 разных AZS США-запад-2a, США-запад-2b и США-запад-2c.

Развертывание занимает некоторое время, пока PersistentVolume создается динамически, но в конечном итоге они оба запускаются.

Проблема, с которой я сталкиваюсь, заключается в том, что PersistentVolume создается в us-west-2c, и единственный узел, на котором может работать модуль, уже выделен.

Есть ли у меня способ создать развертывание и утверждение таким образом, чтобы утверждение не было сделано в регионе, где ни один модуль не может запуститься?

Комментарии:

1. Мой обходной путь на данный момент заключается в добавлении заражения к узлу, который чрезмерно выделен, и это, по-видимому, гарантирует, что утверждение и развертывание не окажутся на общедоступном компьютере. «kubectl заражает узлы ключом node1= значением:NoSchedule «

2. На мой взгляд, мне просто повезло, он снова создал том на us-west-2c, и у моего рабочего узла ec2 на us-west-2c была ошибка, но не повезло

Ответ №1:

Я полагаю, вы ищете функцию для понимания топологии.

Понимание топологии

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

Kubernetes выпустила функцию динамической подготовки с учетом топологии в версии 1.12 kubernetes, и я верю, что это решит вашу проблему.