Приоритеты в стручках в Куберне
У меня в кластере работает несколько пакетных модулей, которые я не хочу убивать в случае нехватки памяти / процессора.
Есть ли способ увеличить его приоритет или еще что-нибудь, чтобы нам не приходилось менять его пространство имен (kube-system для его критичности) и его можно было сохранить?
Я обнаружил некоторые проблемы, связанные с добавлением приоритета в стручки. Но не мог найти решение. Должен быть какой-то способ установить приоритет, или я что-то упустил здесь?
1 ответ
Функция приоритета Pod не доступна до Kubernetes v1.7
От v1.8+
Вы можете добавить приоритет модуля в PodSpec. Вам нужно создать объект PriorityClass со значением приоритета и использовать это имя PriorityClass в Pod.
Но до v1.9
, PriorityClass все еще находится в альфа-фазе.
apiVersion: scheduling.k8s.io/v1alpha1
kind: PriorityClass
metadata:
name: high-priority
value: 1000000
globalDefault: false
Вот,
value
указывает на приоритет. Чем выше значение, тем выше приоритетglobalDefault
указывает на то, что значение этого PriorityClass следует использовать для модулей без PriorityClassName. В системе может существовать только один PriorityClass с globalDefault, установленным в true.
Теперь давайте создадим стручок с этим приоритетом
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
priorityClassName: high-priority
преимущественное право покупки
Когда создается Pod, если не найден Node, который удовлетворяет всем указанным требованиям этого Pod, с помощью логики вытеснения один или несколько Pod с более низким приоритетом удаляются из Node. После того, как стручки исчезли, на узле запланирован стручок с более высоким приоритетом.
Смотрите подробности о приоритете pod.