Kubernetes постоянный объем на собственной стойке - PullRequest
0 голосов
/ 04 июля 2018

Я перемещаю kubernetes из Google GKE, чтобы владеть в домашней стойке. Какое постоянное хранилище я должен использовать?

Kubernetes Local Persistent стала бета-версией только 13 апреля 2018 года https://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/

Я видел много вариантов: - https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes

Не уверен, что мне выбрать. Будет ли что-то работать с файлами развертывания GKE?

1 Ответ

0 голосов
/ 05 июля 2018

В файлах развертывания из GKE вам необходимо изменить настройки spec.volumes в соответствии с настройками постоянного тома.

Я рекомендую вам выбрать один из следующих вариантов:

  1. Самый простой способ - использовать HostPath. Он монтирует файл или каталог из файловой системы узла узла в ваш Pod. Обратите внимание, что в этом случае данные на одном узле недоступны с другого узла без дополнительных настроек. Пример использования в Kubernetes:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-pd
    spec:
      containers:
      - image: k8s.gcr.io/test-webserver
        name: test-container
        volumeMounts:
        - mountPath: /test-pd
          name: test-volume
      volumes:
      - name: test-volume
        hostPath:
          # directory location on host
          path: /data
          # this field is optional
          type: Directory
    
  2. Вы можете использовать NFS. Вам необходимо настроить сервер NFS, после чего вы можете использовать его тома в развертываниях через утверждения постоянных томов. Пример использования в Kubernetes:

    apiVersion: v1
    kind: Deployment
    metadata:
      name: nfs-busybox
    spec:
      replicas: 2
      selector:
        name: nfs-busybox
      template:
        metadata:
          labels:
            name: nfs-busybox
        spec:
          containers:
         - image: busybox
            command:
              - sh
              - -c
              - 'while true; do date > /mnt/index.html; hostname >> /mnt/index.html; sleep $(($RANDOM % 5 + 5)); done'
            imagePullPolicy: IfNotPresent
            name: busybox
            volumeMounts:
              # name must match the volume name below
              - name: nfs
                mountPath: "/mnt"
          volumes:
          - name: nfs
            persistentVolumeClaim:
              claimName: nfs
    

    Вы можете просмотреть ссылку для получения дополнительной информации об использовании NFS.

  3. Вы можете использовать GlusterFS. Вам необходимо настроить собственную установку GlusterFS, после чего вы можете использовать ее тома в Deployments. Пример использования в Kubernetes:

    apiVersion: v1
    kind: Deployment
    metadata:
      name: nfs-busybox
    spec:
      replicas: 2
      selector:
        name: nfs-busybox
      template:
        metadata:
          labels:
            name: nfs-busybox
        spec:
          containers:
         - image: busybox
            command:
              - sh
              - -c
              - 'while true; do date > /mnt/index.html; hostname >> /mnt/index.html; sleep $(($RANDOM % 5 + 5)); done'
            imagePullPolicy: IfNotPresent
            name: busybox
            volumeMounts:
              # name must match the volume name below
              - name: nfs
                mountPath: "/mnt"
          volumes:
          - name: glusterfsvol
            glusterfs:
              endpoints: glusterfs-cluster
                path: kube_vol
                readOnly: true
    

    Для получения дополнительной информации об использовании GlusterFS вы можете просмотреть ссылку .

Дополнительную информацию о постоянных томах и утверждениях о постоянных томах можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...