Приоритеты в стручках в Куберне

У меня в кластере работает несколько пакетных модулей, которые я не хочу убивать в случае нехватки памяти / процессора.

Есть ли способ увеличить его приоритет или еще что-нибудь, чтобы нам не приходилось менять его пространство имен (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.

Другие вопросы по тегам