kubernetes中的PV、PVC

本文深入探讨了Kubernetes中的StatefulSet,特别是其创建和收缩顺序。接着详细介绍了Persistent Volumes (PV)和Persistent Volume Claims (PVC),包括它们的状态/生命周期、访问模式和存储回收策略。此外,文章还讨论了多种存储类型,如emptyDir、hostPath和nfs,并展示了如何使用PV和PVC配置NFS存储。
摘要由CSDN通过智能技术生成

目录

一、statfulset

1.创建顺序

2.收缩顺序

二、PV PVC

1.PV 状态/生命周期

2.PVC

3.nfs

4.PVC

三、emptyDir存储卷

四、hostPath存储卷  

五、nfs共享存储卷

六、PVC 和 PV

七、NFS使用PV和PVC

1.配置nfs存储

2.定义PV

3.定义PVC

4.测试访问


一、statfulset

         StatefulSet 管理了基于相同容器定义的一组 Pod。但和 Deployment 不同的是,StatefulSet 为每个 Pod 维护了一个固定的 ID。这些 Pod 是基于相同的声明来创建的,但是不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。

 ① 稳定的、唯一的网络标识符,即Pod重新调度后其PodName和HostName不变(当然IP是会变的)
② 稳定的、持久的存储,即Pod重新调度后还是能访问到相同的持久化数据,基于PVC实现
③ 有序的、优雅的部署和缩放
④ 有序的、自动的滚动更新

cat statefulset.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: http
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx # has to match .spec.template.metadata.labels
  serviceName: "nginx"
  replicas: 3 # by default is 1
  template:
    metadata:
      labels:
        app: nginx # has to match .spec.selector.matchLabels
    spec:
      terminationGracePeriodSeconds: 10     默认30秒
      containers:
      - name: nginx
        image: registry.cn-beijing.aliyuncs.com/google_registry/nginx:1.17
        ports:
        - containerPort: 80
          name: http

kubectl apply -f statefulset.yml

1.创建顺序

        在下面的 nginx 示例被创建后,会按照 web-0、web-1、web-2 的顺序创建三个 Pod。在 web-0 进入 Running 和 Ready 状态前不会创建 web-1。在 web-1 进入 Running 和 Ready 状态前不会创建 web-2。

       如果 web-1 已经处于 Running 和 Ready 状态,而 web-2 尚未创建,在此期间发生了 web-0 运行失败,那么 web-2 将不会被创建,要等到 web-0 创建完成并进入 Running 和 Ready 状态后,才会创建 web-2。

2.收缩顺序

       如果想将示例中的 StatefulSet 收缩为 replicas=1,首先被终止的是 web-2。在 web-2 没有被完全停止和删除前,web-1 不会被终止。当 web-2 已被终止和删除;但web-1 尚未被终止,如果在此期间发生 web-0 运行失败,那么就不会终止 web-1,必须等到 web-0 进入 Running 和 Ready 状态后才会终止 web-1
 

二、PV PVC

apiVersion: v1
kind: PersistentVolume		                持久化存储卷
metadata:
  name: pv0003
spec:
  capacity:					                指定容量
    storage: 5Gi
  volumeMode: Filesystem                    挂载模式,可选,包含filesystem和block
  accessModes:				                访问模式
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle	挥手策略
  storageClassName: slow	                存储类别
  mountOptions:				                
  挂载参数,将PV挂载到Node时,根据后端存储特点,需要设置挂载参数时,可使用此项	
    
    - hard
    - nfsvers=4.1
  nfs:
    path: /tmp
    server: 主机ip	                NFS服务器

        accessModes:PersistentVolume(PV)指定特殊的访问模式,NFS可以支持多个读/写客户端,但是特定的NFS PV可能以只读方式在服务器上导出。每个PV都有自己的一组访问模式,用于描述该特定PV的功能。

 ① ReadWriteOnce-该卷可以被单个节点以读写方式挂载
② ReadOnlyMany-该卷可以被许多节点以只读方式挂载
③ ReadWriteMany-该卷可以被多个节点以读写方式挂载

在CLI命令行中,访问模式缩写为
RWO-ReadWriteOnce
ROX-ReadOnlyMany
RWX-ReadWriteMany
同时一个卷一次只能使用一种访问模式挂载,即使它支持多种访问模式。

storageClassName:PV可以有一个类,通过将storageClassName属性设置为一个StorageClass的名称来指定这个类。特定类的PV只能绑定到请求该类的PVC。没有storageClassName的PV没有类,只能绑定到不请求特定类的PVC。

persistentVolumeReclaimPolicy:当前的回收政策是:Retain (保留)-手动回收、Recycle (回收)-基本擦除(rm -rf /thevolume/*)、Delete (删除)-删除相关的存储资产 (例如AWS EBS,GCE PD,Azure Disk或OpenStack Cinder卷)。
当前,仅NFS和HostPath支持回收。AWS EBS,GCE PD,Azure Disk和Cinder卷支持删除。
 

1.PV 状态/生命周期

卷将处于以下某种状态:

① Available:尚未绑定到声明(claim)的空闲资源
② Bound:卷已被声明绑定
③ Released:声明已被删除,但群集尚未回收该资源
④ Failed:该卷自动回收失败
CLI将显示绑定到PV的PVC的名称。
 

2.PVC

PVC作为用户对存储资源的需求申请,主要包括存储空间请求、访问模式、PV选择条件和存储类别等信息的设置。
 

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc
spec:
  accessModes:            访问模式
  - ReadWriteOnce
  resources:              申请资源,8Gi存储空间
    requests:
      storage: 8Gi
  storageClassName: slow  存储类别
  selector:				  PV选择条件
    matchLabels:
      release: "stable"
    matchExpressions:
    - {key: environment, operator: In, values: [dev]}

3.nfs

yum install nfs-utils rpcbind -y

mkdir -p /data/nfs1 /data/nfs2 /data/nfs3 /data/nfs4 /data/nfs5 /data/nfs6
vim /etc/exports
/data/nfs1  192.168.226.128/24(rw,sync,root_squash,all_squash)
/data/nfs2  192.168.226.128/24(rw,sync,root_squash,all_squash)
/data/nfs3  192.168.226.128/24(rw,sync,root_squash,all_squash)
/data/nfs4  192.168.226.128/24(rw,sync,root_squash,all_squash)
/data/nfs5  192.168.226.128/24(rw,sync,root_sq
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值