k8s的持久化存储

Posted networking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s的持久化存储相关的知识,希望对你有一定的参考价值。

本例使用nfs

创建pv

[[email protected] data]# vi pv.yaml 

apiVersion: v1
kind: PersistentVolume
metadata:
name: web
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /data
server: 10.10.1.10

字段说明:

========================================================

capacity 指定 PV 的容量为 5G。
accessModes 指定访问模式为 ReadWriteOnce,支持的访问模式有:
ReadWriteOnce – PV 能以 read-write 模式 mount 到单个节点。
ReadOnlyMany – PV 能以 read-only 模式 mount 到多个节点。
ReadWriteMany – PV 能以 read-write 模式 mount 到多个节点。
persistentVolumeReclaimPolicy 指定当 PV 的回收策略为 Recycle,支持的策略有:
Retain – 需要管理员手工回收。
Recycle – 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/*。
Delete – 删除 Storage Provider 上的对应存储资源,例如 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。
storageClassName 指定 PV 的 class 为 nfs。相当于为 PV 设置了一个分类,PVC 可以指定 class 申请相应 class 的 PV。

创建PVC

[[email protected] data]# vi pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: lnmp
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi

[[email protected] data]# kubectl apply -f pvc.yaml
persistentvolumeclaim "lnmp" created

[[email protected] data]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
lnmp Bound web 5Gi RWO 29s
[[email protected] data]#

定义PV

=======================================================

apiVersion: v1
kind: PersistentVolume
metadata:
name: web
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /data
server: 10.10.1.10

定义PVC

==========================================================

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: lnmp
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi

定义pod

=====================================================

apiVersion: v1
kind: ReplicationController
metadata:
name:lnmp
spec:
replicas: 1
selector:
app: o2o
template:
metadata:
labels:
app: o2o
spec:
containers:
- name: o2o
image: docker.io/winstonpro/lnmp
ports:
- containerPort: 80
volumeMounts:
- mountPath: /home/wwwroot/default
readOnly: false
name: o2o
volumes:
- name: o2o
nfs:
server: 10.10.1.10
path: "/data"

 

以上是关于k8s的持久化存储的主要内容,如果未能解决你的问题,请参考以下文章

k8s中的Mysql数据库持久化存储

kubernetes | k8s持久化存储概述

一文读懂 K8s 持久化存储流程

一文读懂 K8s 持久化存储流程

k8s 持久化存储-常见的存储卷介绍

k8s持久化存储