Контейнер K8s mongodb не может использовать том-монтирование EBS - PullRequest
0 голосов
/ 02 апреля 2020

У меня нижеприведенное определение Pod.

apiVersion: v1
kind: Pod
metadata:
  name: mongodb
spec:
  volumes:
  - name: mongodb-data
    awsElasticBlockStore:
      volumeID: vol-0c0d9800c22f8c563
      fsType: ext4
  containers:
  - image: mongo
    name: mongodb
    volumeMounts:
    - name: mongodb-data
      mountPath: /data/db
    ports:
    - containerPort: 27017
      protocol: TCP

Я создал volumne в AWS и попытался подключиться к контейнеру. Контейнер не запускается.

kubectl get po
NAME      READY   STATUS              RESTARTS   AGE
mongodb   0/1     ContainerCreating   0          6m57s

Когда я создал том и назначил его в зону доступности, в которой работает узел, и на котором был запланирован модуль, том был успешно смонтирован. Если модуль не запланирован на узле, монтирование не выполняется. Как я могу убедиться, что к тому доступу могут быть все узлы

1 Ответ

1 голос
/ 03 апреля 2020

В соответствии с документацией :

При использовании тома awsElasticBlockStore существуют некоторые ограничения:

  • узлы, на которых работают модули, должны быть AWS экземплярами EC2
  • эти экземпляры должны находиться в той же области и зоне доступности, что и том EBS
  • EBS поддерживает только один экземпляр EC2, монтирующий том

Убедитесь, что все вышеперечисленное выполнено. Если ваши узлы находятся в разных зонах, чем вам может потребоваться создать дополнительные тома EBS, например:

aws ec2 create-volume --availability-zone=eu-west-1a --size=10 --volume-type=gp2

Пожалуйста, дайте мне знать, если это помогло.

...