这篇文章主要讲解了“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/v1 kind: Deployment metadata: name: nginx-web spec: 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: v1 kind: Service metadata: name: nginx-web labels: run: nginx-web spec: type: LoadBalancer ports: - port: 80 targetPort: 80 protocol: TCP name: http selector: run: nginx-web --- #声明pv详细设置 apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain nfs: server: 192.168.33.10 path: "/mnt/nfs" --- #声明pv需求 apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi --- #声明configmap用于nginx配置 apiVersion: v1 kind: ConfigMap metadata: name: nginx-config data: 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这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。