千家信息网

kubernetes中怎么验证PV和PVC

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要讲解了"kubernetes中怎么验证PV和PVC",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"kubernetes中怎么验证PV和PVC
千家信息网最后更新 2025年02月01日kubernetes中怎么验证PV和PVC

这篇文章主要讲解了"kubernetes中怎么验证PV和PVC",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"kubernetes中怎么验证PV和PVC"吧!

k8s中用PV和PVC分离了存储和使用存储

pv是存储空间,由StorageClass来分类

pvc是存储卷声明,代表用户使用存储的请求,包括空间大小、特定的访问模式等

PVC可作为数据卷的一种,被挂在到容器或容器组中使用

有静态和动态两种方式为PVC提供PV

static: 人为创建好一系列PV,它们包含实际存储的具体信息,且对集群用户可见

dynamic: 在配置有合适的StorageClass且PVC关联了该StorageClass的情况下,k8s集群可为应用程序动态创建PV

当用户创建了一个PVC,k8s将立刻为其匹配一个PV,并将二者绑定在一起。PVC和PV之间的绑定关系是一对一的映射。

若没有合适的PV,PVC将停留在unbound状态,直到有合适的PV可用

这里用NFS服务给nginx提供网页存储,验证PV和PVC
环境是,k8s 1.20.1,master节点上安装nfs服务端,其他node节点安装nfs客户端

一、 ubuntu 18.04上安装nfs

server端

apt install nfs-kernel-server

创建共享目录

mkdir -p /mnt/nfs

vi /etc/exports

/mnt/nfs *(rw,sync,no_root_squash)

重启服务

systemctl rpcbind restart

systemctl nfs-server status

确认NFS服务器启动成功:

rpcinfo -p

检查 NFS 服务器是否挂载我们想共享的目录/mnt/nfs/

exportfs

showmount -e localhost #显示输出列表

client端

apt install nfs-common

mount -t nfs -o vers=4.1 192.168.33.10:/mnt/nfs /data

查看服务端共享目录

showmount -e 192.168.33.10

客户端查询挂载情况

df -h

rpcinfo -p 192.168.33.10

查看NFS版本

服务器端使用:nfsstat -s

客户端使用:nfsstat -c

二、 k8s上配置验证PV、PVC

配置文件

vi pv-lb-nginx.yaml

apiVersion: apps/v1kind: Deploymentmetadata:  name: nginx-webspec:  selector:    matchLabels:      run: nginx-web  replicas: 1  template:    metadata:      labels:        run: nginx-web    spec:      containers:      - name: nginx-web        image: nginx        ports:        - containerPort: 80        volumeMounts:        - mountPath: /etc/nginx/conf.d  # nginx容器中的默认配置目录          name: configfile   #自定义名称1        - mountPath: /usr/share/nginx/html  # nginx容器中的网页目录          name: webroot  #自定义名称2      volumes:      - name: configfile #须和上面自定义名称1一致        configMap:          name: nginx-config #指定configmap的名称      - name: webroot #须和上面自定义名称2一致        persistentVolumeClaim:          claimName: nfs-pvc  #指定pvc的名称---apiVersion: v1kind: Servicemetadata:  name: nginx-web  labels:    run: nginx-webspec:  type: LoadBalancer  ports:  - port: 80    targetPort: 80    protocol: TCP    name: http  selector:    run: nginx-web--- #声明pv详细设置apiVersion: v1kind: PersistentVolumemetadata:  name: nfs-pvspec:  capacity:    storage: 1Gi  volumeMode: Filesystem  accessModes:    - ReadWriteMany  persistentVolumeReclaimPolicy: Retain  nfs:    server: 192.168.33.10    path: "/mnt/nfs"---  #声明pv需求apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: nfs-pvcspec:  accessModes:    - ReadWriteMany  resources:    requests:      storage: 1Gi---     #声明configmap用于nginx配置apiVersion: v1kind: ConfigMapmetadata:  name: nginx-configdata:  nginx.conf: |-    server {    listen       80;    listen  [::]:80;    server_name  localhost;    location / {        root   /usr/share/nginx/html;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }    }

kubect apply -f pv-lb-nginx.yaml

检查部署状态:

kubectl get svc

kubectl get pods

kubectl get pv

kubectl get pvc

若出错,kubectl describe 查看其events

验证,打开浏览器访问nginx,看到你配置的网页内容即可

感谢各位的阅读,以上就是"kubernetes中怎么验证PV和PVC"的内容了,经过本文的学习后,相信大家对kubernetes中怎么验证PV和PVC这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0