这篇文章主要讲解了“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这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!