В Kubernetes могут ли taint / допуск достичь всех вариантов использования, достижимых с помощью сходства узлов (и наоборот)? - PullRequest
0 голосов
/ 21 апреля 2020

Я понимаю, что в Kubernetes taint/toleration используется, чтобы гарантировать, что на узле, испорченном меткой, будут только стручки с соответствующим допуском, которые будут запланированы на нем. Кроме того, через node affinity мы (можем) гарантировать, что модуль будет запланирован на подмножестве узлов с использованием меток.

Однако я хотел бы знать, есть ли варианты использования, в которых то, что может быть достигнуто одним, не может быть достигнутым другим. Даже сценарий ios, где один может быть предпочтительнее другого, будет проницательным.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Я понимаю, что в Kubernetes taint / допуск используется, чтобы гарантировать, что узел, испорченный меткой, будет иметь только блоки с соответствующим допуском, которые будут запланированы на нем.

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

Кроме того, с помощью привязки узлов мы (можем) обеспечить планирование модуля на подмножестве узлов с использованием меток.

Да, с помощью nodeAffinity вы можете требовать стручки должны быть запланированы только на соответствующих узлах.

1 голос
/ 21 апреля 2020

Согласно вашему заявлению taint/toleration is used to ensure that a node tainted with a label will only have pods with corresponding toleration to be scheduled on it., но не всегда гарантируется, что модуль запланировал только этот узел. Например,

У нас есть 3 узла, синий , зеленый , красный узел. и у нас также есть 3 капсулы B , G , R . Наша цель - разместить модуль B в узле blue , модуль R в узле red , аналогично G pod в узле green . Мы разделяем тот же кластер kubernetes с другими командами, поэтому в кластере есть других модулей , а также других узлов . Мы не хотим, чтобы какие-либо другие модули были размещены на нашем узле. Мы также не хотим, чтобы наши модули были размещены на их узлах.

Если мы применили taint к узлу blue , чтобы на нем можно было запланировать только синий модуль, аналогично примените taint к узлу green , который допускает только зеленый модуль и красный узел допускает красные стручки.

Итак, первый модуль B может быть запланирован на синем модуле, а модуль G - на зеленом модуле. и R pod может оказаться на другом узле.

Если мы хотим решить ту же проблему с привязкой узла. Как мы можем это сделать?

Мы пометили синий узел с синим цветом, красный узел с красным цветом и зеленый узел с зеленым цветом. Затем мы устанавливаем селекторы узлов в модуле так, чтобы модуль B планировался на синем узле, модуль G планировался на зеленом узле и модуль R планировался на красном узле.

Итак, проблема в том, что это не гарантирует, что другие модули не будут размещены на этом узле. так что есть вероятность, что другие модули могут оказаться на узле blue , green или red .

С комбинацией портит / допуск и сходство узлов мы можем полностью выделить узлы для заданных c pod.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...