У меня есть кластер k3s с несколькими узлами, скажем, 3 узла. На каждом узле у меня есть несколько модулей для развертывания. Это «статическое развертывание», означающее, что я хочу развернуть каждый модуль на определенном узле. Я не хочу, чтобы k3s делал это автоматически.
Например:
Узел_1:
pod_a
pod_b
pod_c
Узел_2:
pod_d
pod_e
pod_f
Узел_3:
pod_h
pod_i
pod_g
Для этого я использую метки. Я помечаю каждый узел определенными метками, а затем указываю метку в батат
файл развертывания:
Например, что-то вроде этого:
апиВерсия: v1
вид: узел
метаданные:
имя: узел3
этикетки:
дб: «правда»
И батат
файлы развертывания, например для базы данных:
apiVersion: приложения/v1
вид: StatefulSet
метаданные:
имя: дб
пространство имен: по умолчанию
спецификация:
спецификация:
селектор узла:
дб: «правда»
Итак, обычно стручок дБ
должны быть развернуты на узел 3
. Но иногда это не так. Когда я выполняю повторное развертывание, модуль повторно развертывается на другом узле, и я не понимаю, почему и как переместить его обратно на правильный узел.
Это очень раздражает, потому что для некоторых критических модулей у меня есть данные, смонтированные на хосте, и если модуль не развернут правильно, мое приложение может завершиться ошибкой.
Как убедиться, что мой стручок всегда правильно разворачивает? И почему иногда он не может правильно развернуться? Спасибо