Написать в техподдержку Позвонить нам
Админпанель Выход

Содержание статьи:

    Подключение NFS в качестве Persistent Volume

    Вместе с блочной системой хранения на базе Ceph вы можете использовать общее файловое хранилище, доступное по протоколу NFS, для создания Persistent volumes в вашем кластере Kubernetes.

    Для этого сначала необходимо создать NFS-диск в приватной подсети, ассоциированной с вашим кластером Kubernetes:

    1. Выберите пункт меню «Вычислительные ресурсы» → «Общие ресурсы».
    2. Перейдите на вкладку «Сети общих ресурсов».
    3. Создайте новую Сеть общего ресурса, указав:
    Сеть Neutron
    Сеть кластера Kubernetes
    Подсеть Neutron
    Подсеть кластера Kubernetes
    1. Перейдите на вкладку «Общие ресурсы».
    2. Создайте новый «Общий ресурс», указав:
    Протокол общего ресурса
    NFS
    Размер 
    Необходимый размер
    Сеть общего доступа
    Созданную ранее сеть
    1. В меню действий созданного ресурса выберите пункт «Управление правилами».
      1. Нажмите «Добавить правило».
      2. В поле «Тип доступа» выберите значение «ip».
      3. В поле «Доступ к» введите значение подсети, выделенной для вашего кластера Kubernetes. Например, «10.1.1.0/24»
    2. Перейдите в созданный ресурс и скопируйте значение поля «Путь». Например, 10.0.0.16:/shares/share-51831cd4-2fe9-4f08-ac45-6be754556519.

    Далее вам нужно создать Persistent Volume используя манифест следующего вида (в поле «Server» нужно вписать IP-адрес из значения «Путь» созданного ранее ресурса). 

    Также вы можете создать PersistentVolumeClaim, который использует ранее созданный NFS Persistent Volume в качестве источника. 

    Важно, чтобы вы указали в поле mountOptions nfsvers=4.0 Persistent Volume, а также storageClassName: "" в декларации Persistent Volume Claim.

    Ниже пример манифеста, создающего Persistent Volume на базе NFS и Persistent Volume Claim, использующий ранее созданный Persistent Volume в качестве источника.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: portal-info-data-pv
    spec:
      accessModes:
        - ReadWriteMany
      mountOptions:
        - hard
        - nfsvers=4.0
        - timeo=60
        - retrans=10
      capacity:
        storage: 100Gi
      nfs:
        server: 10.0.0.28
        path: "/shares/share-76637908-0da9-4007-be78-e334ca4573a1"
      persistentVolumeReclaimPolicy: "Recycle"
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: portal-info-data-pvc
    spec:
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      volumeName: "portal-info-data-pv"
      storageClassName: ""
    
    ---
    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: nginx
    spec:
      replicas: 4
      selector:
        app: nginx
      template:
        metadata:
          name: nginx
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
            volumeMounts:
            - name: portal-info-data
              mountPath: /var/www/html
          restartPolicy: Always
          volumes:
          - name: portal-info-data
            persistentVolumeClaim:
              claimName: portal-info-data-pvc




     

    Полезна ли была эта статья?