Вакансии Kubernetes для разных ОС

С поддержкой Windows Server 2019 в Kubernetes 1.14 кажется возможным иметь узлы с разными ОС. Например, узел Ubuntu 18.04, узел RHEL 7, узел Windows Server в одном кластере.

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

Имея в виду вышеизложенное, возможно ли настроить задание для перехода к определенной очереди и, в свою очередь, к определенному узлу ОС?

Вы можете поиграть с Label, Selector и Affinity, чтобы назначить разные модули разным узлам. Взгляните на kubernetes.io/docs/concepts/configuration/assign-pod-node

Alexandre Cartapanis 29.05.2019 23:18
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
1
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Узлы Kubernetes поставляются со стандартным набором меток, включая kubernetes.io/os

Затем поды могут быть назначены в определенные места через nodeSelector, podAffinity и podAntiAffinity.

apiVersion: extensions/v1beta1
kind: Pod
metadata:
  name: anapp
spec:
  containers:
  - image: docker.io/me/anapp
    name: anapp
    ports:
     - containerPort: 8080
  nodeSelector:
    kubernetes.io/os: linux

Если вам нужен более детальный контроль (например, выбор между Ubuntu/RHEL), вам нужно будет добавить пользовательские метки в развертывание вашего узла kubernetes для выбора. Этот уровень выбора встречается редко, поскольку среды выполнения контейнеров пытаются скрыть от вас большинство различий, но если у вас есть конкретный случай, добавьте в узлы дополнительные метаданные метки.

Я бы рекомендовал использовать поля ID и VERSION_ID из cat /etc/*release*, так как большинство дистрибутивов Linux заполняют эту информацию в той или иной форме.

kubectl label node thenode softey.com/release-id=debian
kubectl label node thenode softey.com/release-version-id=9

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

DiplomacyNotWar 30.05.2019 05:05

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