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.