k8s静态存储(PV&PVC)

这里以NFS文件存储测试

相关搭建可以参考: NFS安装与配置

查看nfs信息:

# 每个node节点需要安装nfs工具集
yum install nfs-utils

showmount -e 192.168.104.26

192.168.104.26:/data

创建pv与pvc配置文件

pv配置

vim pv.yaml
########################################
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-01
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /data/k8s-storage
    server: 192.168.104.26
    
# 创建
kubectl apply -f pv.yaml

此时状态是Available, 没有被绑定

pvc配置

vim pvc.yaml
########################################
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-01
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
      
# 创建
kubectl apply -f pvc.yaml

pv和pvc的绑定会按照储存空间的大小进行匹配绑定


此时他们的状态是Bound, 已经被绑定了

pod使用

创建my-nginx服务

vim my-nginx.yaml
########################################
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      run: my-nginx
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: "/opt"
          name: logs
      volumes:
      - name: logs
        persistentVolumeClaim:
          claimName: pvc-01

mountPath: pod绑定的存储路径
claimName: 声明的存储名称

执行

kubectl apply -f my-nginx.yaml

检验

确保容器已启动

kubectl get po | grep my-nginx

每台node主机一定要安装nfs-utils, 且确保nfs服务器存在/data/k8s-storage

新增文件测试

# 往其中一个pod写入文件

iShot2021-04-03-16.36.36

# 在另一个pod查看文件

# 查看nfs文件目录

展示评论