Kubernetes постоянный объем на собственной стойке
Я перемещаю 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/
Не уверен, что я должен выбрать. Будет ли что-то работать с файлами развертывания GKE?
1 ответ
В Deployment файлы из GKE, вам нужно изменить spec.volumes
настройки в соответствии с вашими настройками постоянного уровня громкости.
Я рекомендую вам выбрать один из следующих вариантов:
Самый простой способ - это использовать
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
Ты можешь использовать
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.
Ты можешь использовать
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.
Вы можете найти более подробную информацию о постоянных томах и утверждениях о постоянных томах здесь.