CentOS 上搭建与验证 Kubernetes 持久化卷
一 核心概念与访问模式
二 在 CentOS 上快速落地 NFS 静态供给
yum -y install nfs-utils rpcbindmkdir -p /data/k8s_datacat >> /etc/exports <<'EOF' /data/k8s_data 192.168.10.0/24(rw,sync,no_root_squash) EOFsystemctl enable --now rpcbind nfs-serverchown -R nfsnobody:nfsnobody /data/k8s_datashowmount -e <NFS_IP>yum install -y nfs-utils(无需启动 nfs-server)apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs
spec:
capacity:
storage: 500Mi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: <NFS_IP>
path: /data/k8s_data
kubectl apply -f pv-nfs.yamlapiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nfs
namespace: default
spec:
resources:
requests:
storage: 500Mi
accessModes:
- ReadWriteMany
storageClassName: ""
kubectl apply -f pvc-nfs.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-nginx-nfs
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nginx-nfs
template:
metadata:
labels:
app: nginx-nfs
spec:
containers:
- image: nginx:1.7.9
name: nginx-container
ports:
- name: http
containerPort: 80
volumeMounts:
- name: pvc-volume
mountPath: /var/log/nginx
volumes:
- name: pvc-volume
persistentVolumeClaim:
claimName: pvc-nfs
kubectl apply -f deploy-nginx-pvc.yamlkubectl get pv,pvc 应见 STATUS=Boundkubectl logs deployment/nginx-nfs 正常输出,或进入容器检查挂载点kubectl delete deploy deployment-nginx-nfskubectl delete pvc pvc-nfs(PV 变为 Released,数据仍在 NFS 服务器)三 动态供给与 StorageClass 要点
storageClassName: "" 则禁用动态供给。四 常用场景与注意事项