У меня есть кластер, где создаются задания в порядке того, что делают мои пользователи. Иногда у меня может быть 0 заданий параллельно, а иногда от 20 до 100. Я установил следующие ограничения для каждого контейнера:
cpu limit: 512m
memory limit: 512Mi;
cpu request: 256m;
memroy request: 128Mi;
У меня по умолчанию 2 узла, и у каждого есть:
7.91 CPU allocable
10.16 GB allocable
Пул узлов может масштабироваться до 5 узлов максимум.
Но когда в кластере начинает работать 8 и более параллельных заданий, новые задания начинают находиться в состоянии ожидания, ожидая, пока другие задания будут закрыты. Если задание выбрано для непосредственного запуска, оно будет выполнено через 6-7 секунд. Но когда кластер начинает бороться с 8 или 10 заданиями, выполнение каждого задания занимает приблизительно 20 секунд, поскольку оно заблокировано в состоянии ожидания или в состоянии ContainerCreating.
У меня есть IfNotPresent как imagePullPolicy, и каждое изображение имеет версия.
Я полагаю, кластер начнет бороться с 28 заданиями, зная мои выделяемые ресурсы, затем создаст новый узел и так далее. Почему я не прав? Можно ли заставить каждый контейнер запускаться без состояния ожидания? Я нашел новый планировщик, но я не уверен, может ли он помочь мне poseidon-Firmament-alternate-scheduler?