Kubernetes volúmenes de almacenamiento persistente PersistentVolume, los volúmenes de almacenamiento persistente declaración uso PersistentVolumeClaim

Preparar una máquina para instalar NFS

#安装nfs-utils
yum -y install nfs-utils
systemctl iniciar NFS
systemctl permitan NFS

# Crear un directorio
mkdir / Datos / Volúmenes -pv
CD / Datos / Volúmenes
MkDir {1,2,3,4,5} V

Configuración de uso compartido de archivos

vim / etc / exports
/ datos / volúmenes / v1 192.168.1.0/24(rw,sync,no_root_squash)
/ datos / volúmenes / v2 192.168.1.0/24(rw,sync,no_root_squash)
/ datos / volúmenes / v3 192.168.1.0 / 24 (rw, sync, no_root_squash)
/ datos / volúmenes / v4 192.168.1.0/24(rw,sync,no_root_squash)
/ data / volúmenes / v5 192.168.1.0/24(rw,sync,no_root_squash)

# set remontar / etc / exports de
exportfs -arv

# Anfitrión de la demostración de / etc / exportación de datos directorio compartido
showmount -e


K8S NFS montados en todos los nodos del nodo
ñam la instalación NFS -Y-utils
systemctl NFS Start
systemctl permiten NFS

Ya sea NFS Prueba de funcionamiento
mkdir / V1
eco de la prueba v1 >> /v1/test.txt
# 192.168.1.190 es ip host NFS
mount -t nfs 192.168.1.190:/data/volumes/v1 / V1
eco de la prueba v1 >> / v1 / test.txt


# Nfs nodo
/data/volumes/v1/test.txt gato 

test.txt en el nodo nodo nodo se ha sincronizado a NFS, no hay problema.


# Desinstalar / directorio v1 en la prueba de nodo del nodo
umount / v1

 

La creación de PersistentVolume, PersistentVolumeClaim, Pod en el nodo maestro

vim pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv1
  labels:
    name: pv1
spec:
  nfs:
# path 挂载路径
    path: /data/volumes/v1
# server nfs机器的ip
    server: 192.168.1.190
# ReadWriteOnce能以读写模式被加载到一个节点上
  accessModes: ["ReadWriteOnce"]
  capacity:
    storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv2
  labels:
    name: pv2
spec:
  nfs:
    path: /data/volumes/v2
    server: 192.168.1.190
# ReadOnlyMany以只读模式加载到多个节点上
  accessModes: ["ReadOnlyMany"]
  capacity:
    storage: 5Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv3
  labels:
    name: pv3
spec:
  nfs:
    path: /data/volumes/v3
    server: 192.168.1.190
# ReadWriteMany以读写模式被加载到多个节点上    
  accessModes: ["ReadWriteMany", "ReadWriteOnce"]
  capacity:
    storage: 10Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv4
  labels:
    name: pv4
spec:
  nfs:
    path: /data/volumes/v4
    server: 192.168.1.190
  accessModes: ["ReadWriteMany", "ReadWriteOnce"]
  capacity:
    storage: 10Gi

vim-pod pvc.yaml 

apiVersion: v1
# 存储卷声明
kind: PersistentVolumeClaim
metadata:
  name: pvc-myapp
  namespace: default
spec:
  accessModes: ["ReadWriteMany"]
  resources:
    requests:
      storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: pod-myapp
  namespace: default
spec:
  volumes:
  - name: html
#   使用pvc-myapp存储卷声明
    persistentVolumeClaim:
      claimName: pvc-myapp
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
    volumeMounts:
    - name: html
      mountPath: /usr/share/nginx/html

Implementar

kubectl aplicar -f pv.yaml 
kubectl aplicar -f-pod pvc.yaml 

Ver pv

kubectl get pv

Ver pvc

kubectl get pvc

Usar la pv3, NFS nodo a la nueva /data/volumes/v3/index.html

eco Esta es la página de inicio >> pv3 /data/volumes/v3/index.html
 

Ver vaina

kubectl obtienen vainas -O amplia

rizo 10.244.2.39

El NFS / datos / volúmenes / v3 vaina de envase y / usr / share / nginx / html / sincronización

Modificar / usr / share / nginx / html / sync para ver si el recipiente de vaina / data / volúmenes / v3

-Es Exec kubectl POD-miaplicacion - / bin / sh
cd / usr / share reportar / nginx / HTML
eco añadir, modificar index.html >>
eco añadir archivos >> nuevo.txt

A disposición del NFS / datos / volúmenes / v3 para ver si los cambios sincronizados.

 

vaina de eliminación, pvc

kubectl eliminar -f-pod pvc.yaml 

kubectl get pv

Estado pv3 es liberado

Lanzamiento: estado de liberación, lo que indica que el PVC PV desagregación, pero todavía no se llevaron a cabo la estrategia de recuperación.
Es decir, después de la eliminación del PVC, pv no puede estar vinculado con el uso de PVC nuevo.

Pv3 quiere usar de nuevo se puede lograr mediante la modificación de la definición de pv3

kubectl edición pv pv3

spec.claimRef de borrado (el contenido de la caja roja) a

kubectl get pv

Disponible convirtió en un pv.

 

 

 

 

Publicado 51 artículos originales · elogios ganado 14 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u010606397/article/details/91129417
Recomendado
Clasificación