В файлах развертывания из 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 вы можете просмотреть ссылку .
Дополнительную информацию о постоянных томах и утверждениях о постоянных томах можно найти здесь .