Можно ли для запуска стручков на kubernetes использовать тот же PVC - PullRequest
0 голосов
/ 19 февраля 2019

В настоящее время я настроил PVC с именем minio-pvc и создал развертывание на основе диаграммы stable / minio со значениями

mode: standalone
replicas: 1
persistence:
  enabled: true
  existingClaim: minio-pvc

Что произойдет, если яувеличить количество реплик?Могу ли я рискнуть испортить данные, если более чем один модуль пытается записать в PVC одновременно?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Не используйте развертывание для контейнеров с состоянием.Вместо этого используйте StatefulSets.StatefulSets специально разработаны для запуска контейнеров с состоянием, таких как базы данных.Они используются для сохранения состояния контейнера.

Обратите внимание, что каждый модуль будет связывать отдельный постоянный том через pvc.Там нет возможности нескольких экземпляров стручков, пишущих в один и тот же PV.Надеюсь, я ответил на ваш вопрос.

0 голосов
/ 19 февраля 2019

В случае, если вы придерживаетесь Deployments вместо StatefulSets, для нескольких реплик невозможно будет выполнить запись в один PVC, поскольку нет гарантии, что разные реплики запланированы на одном и том же узле, и поэтому вы можете иметьожидающий модуль, ожидающий установления соединения с томом и сбоя.Решение состоит в том, чтобы выбрать конкретный узел и запустить все свои реплики на одном узле.

Запустите следующее и назначьте метку одному из ваших узлов:

kubectl label nodes <node-name> <label-key>=<label-value>

Скажем, мы выбрали label-key, чтобы быть labelKey, и label-value, чтобы быть node1.Затем вы можете добавить следующее в файл YAML и назначить модули на один и тот же узел:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  labels:
    app: my-app
spec:
  replicas: 3
  template:
    spec:
      nodeSelector:
        <b>labelKey: node1</b>
      containers:
      ...
...