Модули k3s не развернуты на правильном узле
У меня есть кластер k3s с несколькими узлами, скажем 3 узлами. На каждом узле мне нужно развернуть несколько модулей. Это «статическое развертывание», означающее, что я хочу развернуть каждый модуль на определенном узле. Я не хочу, чтобы k3s делал это автоматически.
Например:
Node_1:
pod_a
pod_b
pod_c
Node_2:
pod_d
pod_e
pod_f
Node_3:
pod_h
pod_i
pod_g
Для этого я использую метки. Я помечаю каждый узел определенными метками, а затем указываю метку в файле развертывания:
Например, что-то вроде этого:
apiVersion: v1
kind: Node
metadata:
name: node3
labels:
db: 'true'
Иyaml
файлы развертывания, например для базы данных:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: db
namespace: default
spec:
spec:
nodeSelector:
db: 'true'
Итак, обычно модульdb
должен быть развернут наNode3
. Но иногда это не так. Когда я выполняю перераспределение, модуль перераспределяется на другой узел, и я не понимаю, почему и как переместить его обратно на правильный узел.
Это довольно раздражает, потому что для некоторых критических модулей у меня есть данные, смонтированные на хосте, и если модуль развернут неправильно, мое приложение может выйти из строя.
Как убедиться, что мой модуль всегда развертывается правильно? И почему иногда его не удается правильно развернуть? Спасибо