Kubernetes: как сделать динамический PersistentVolumeClaim с persistentVolumeReclaimPolicy: восстановить - PullRequest
0 голосов
/ 22 мая 2018

У меня динамическая PersistentVolume инициализация с использованием PersistentVolumeClaim.

Я хотел бы сохранить PV после того, как модуль сделан.Поэтому я хотел бы иметь то, что делает persistentVolumeReclaimPolicy: Reclaim.

Однако это применимо к PersistentVolume, а не PersistentVolumeClaim (AFAIK).

Как я могу изменить этоповедение для динамически подготовленных PV?

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
    name: {{ .Release.Name }}-pvc
spec:
    accessModes:
      - ReadWriteOnce
    storageClassName: gp2
    resources:
        requests:
            storage: 6Gi

---
kind: Pod
apiVersion: v1
metadata:
    name: "{{ .Release.Name }}-gatling-test"
spec:
    restartPolicy: Never
    containers:
      - name: {{ .Release.Name }}-gatling-test
        image: ".../services-api-mvn-builder:latest"
        command: ["sh", "-c", 'mvn -B gatling:test -pl csa-testing -DCSA_SERVER={{ template "project.fullname" . }} -DCSA_PORT={{ .Values.service.appPort }}']
        volumeMounts:
          - name: "{{ .Release.Name }}-test-res"
            mountPath: "/tmp/testResults"

    volumes:
      - name: "{{ .Release.Name }}-test-res"
        persistentVolumeClaim:
          claimName: "{{ .Release.Name }}-pvc"
          #persistentVolumeReclaimPolicy: Retain  ???

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Обходным путем будет создание нового StorageClass с reclaimPolicy: Retain и использование этого StorageClass везде где.

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gp2-retain
  annotations:
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  fsType: ext4 
reclaimPolicy: Retain

PS: reclaimPolicy существующего StorageClass не может быть отредактирован, но вы можете удалить StorageClass ивоссоздай его с reclaimPolicy: Retain

0 голосов
/ 22 мая 2018

На Kubernetes Github существует проблема , связанная с политикой восстановления динамически подготовленных томов.

Короткий ответ - "нет" - вы не можете установить политику.

Вот небольшая цитата из диалога в билете о том, как избежать удаления PV:

Speedline : Наткнулся на это, и я прохожу аналогичную проблему.Я хочу создать кластер Elasticsearch, но убедитесь, что если кластер выйдет из строя по какой-либо причине, данные, хранящиеся на постоянных дисках, будут сохраняться при перезапуске.В настоящее время у меня есть один PersistentVolumeClaim для каждого развертывания эластичного поиска, который переносит данные.

jsafrane : @speedplane: он поддерживается до тех пор, пока вы не удалите PVC.Политика восстановления выполняется только в том случае, если kuberenetes видит PV, который был связан с PVC, а PVC не существует.

@ jsafrane хорошо, получил его.Так что просто нужно быть осторожным с PVC, удаление одного - это как удаление всех данных на диске.

...