Kubernetes volumes de armazenamento persistente PersistentVolume, persistente declaração volumes de armazenamento uso PersistentVolumeClaim

Prepare uma máquina para instalar NFS

#安装nfs-utils
yum -y install NFS-utils
systemctl começar NFS
systemctl habilitar o NFS

# Criar um diretório
mkdir / Data / Volumes -PV
CD / Data / Volumes
mkdir {1,2,3,4,5} V

Compartilhamento de arquivos de configuração

vim / etc / exportações
/ dados / volumes / v1) 192.168.1.0/24(rw,sync,no_root_squash
/ dados / volumes / v2 192.168.1.0/24(rw,sync,no_root_squash)
/ dados / volumes / v3 192.168.1.0 / 24 (rw, sincronização, no_root_squash)
/ dados / volumes / v4 192.168.1.0/24(rw,sync,no_root_squash)
/ dados / volume / v5 192.168.1.0/24(rw,sync,no_root_squash)

# Set remontar o / etc / exportações de
exportfs -arv

# Show Host do / etc / exportação de dados diretório compartilhado
showmount -e


K8S NFS montado em todos os nós do nó
yum a instalação NFS-Y-utils
systemctl NFS Iniciar
systemctl habilitar o NFS

Se NFS teste de funcionamento
mkdir / v1
echo o v1 Teste >> /v1/test.txt
# 192.168.1.190 é NFS host IP
mount -t nfs 192.168.1.190:/data/volumes/v1 / v1
echo o v1 Teste >> / v1 / text.txt


# Nfs nó
/data/volumes/v1/test.txt gato 

test.txt no nó nó nó foi sincronizado com NFS, não há problema.


# Desinstalar / diretório v1 no teste nó nó
umount / v1

 

Criando PersistentVolume, PersistentVolumeClaim, Pod no nó mestre

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

Implantar

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

Ver pv

kubectl get pv

Ver pvc

kubectl get pvc

Use o CP3, NFS nó para o novo /data/volumes/v3/index.html

echo Esta é a home page PV3 >> /data/volumes/v3/index.html
 

Ver pod

kubectl obter vagens -o ampla

onda 10.244.2.39

O NFS / data / volumes / v3 recipiente pod e / usr / share / nginx / html / Directory Sync

Modificar / usr / share / nginx / html / sincronização para ver se o recipiente pod / data / volumes / v3

Exec -É POD-myapp kubectl - / bin / sh
cd / usr / denunciar essa participação content / nginx / HTML
eco adicionar, modificar index.html >>
eco adicionar arquivos >> new.txt

Disponível para o NFS / data / volumes / v3 para ver se as mudanças sincronizadas.

 

pod de exclusão, pvc

kubectl excluir -f pod-pvc.yaml 

kubectl get pv

Estado PV3 é Lançado

Lançado: estado de liberação, indicando que o PVC PV separação, mas ainda não executou a estratégia de recuperação.
Ou seja, depois de pvc exclusão, pv não pode ser preso com o uso de novas pvc.

PV3 quer usar novamente pode ser alcançado modificando a definição de PV3

editar kubectl PV3 pv

spec.claimRef Delete (o conteúdo da caixa vermelha) para

kubectl get pv

Disponível tornou-se um pv.

 

 

 

 

Publicado 51 artigos originais · ganhou elogios 14 · vê 40000 +

Acho que você gosta

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