Стручок Kubernetes в большем количестве реплик - анти-правило близости - PullRequest
0 голосов
/ 09 июля 2019

У меня вопрос по поводу анти-аффинного правила для K8S pod.Что у меня есть и что мне нужно.

У меня кросс-центр с двумя дата-центрами K8S.В каждом DC есть, например, 5 узлов.У меня есть Развертывание для Pod, которое работает в 10 реплик, пересекающих все 10 узлов.Для каждого узла есть 1 Pod реплики.И я хочу установить правило для случая, если один DC потерпит крах, чтобы не переносить 5 реплик из неисправного DC в исправный DC.

Я обнаружил, что это можно сделать с помощью правила «Анти-сходство», но я не могу найти никакого примера для этого сценария.У вас есть пример для этого?

Ответы [ 3 ]

2 голосов
/ 09 июля 2019

Из документации https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

вам необходимо установить селектор в своем развертывании и указать в разделе антиаффинности, какое значение нужно сопоставить, и сделать анти-аффинность истинной:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-cache
spec:
  selector:
    matchLabels:
      app: store
  replicas: 3
  template:
    metadata:
      labels:
        app: store
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - store
            topologyKey: "kubernetes.io/hostname"
      containers:
      - name: redis-server
        image: redis:3.2-alpine

Вы можете видеть, что он использует селектор меток, который пытается найти ключ app со значением store, это означает, что если у узла уже есть модуль с этой меткой и значение kubernetes будет применять антиаффинность.

1 голос
/ 09 июля 2019

посмотрите на DaemonSet.Он развернет одну реплику на каждом узле.В случае сбоя одного DC, модули не будут перенесены на другой DC.

0 голосов
/ 09 июля 2019

Спасибо, ребята, за хорошие примеры. Это именно то, что мне нужно!

...