6.k8s.存储Volume.PV.PVC
#Volume
Volume 解决数据持久化和容器间共享数据
Kubernetes支持几十种类型的后端存储卷
hostPath挂载实例,挂载Node节点/tmp/test-volume目录到容器/test-pd
#volume-test.yaml
apiVersion: v1
kind: Pod
metadata:
name: volume-test
spec:
containers:
- image: alivv/nginx:node
name: volume-test
volumeMounts:
- mountPath: /test-pd
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /tmp/test-volume
type: DirectoryOrCreate #node节点不存在则创建空目录
#创建pod
kubectl create -f volume-test.yaml
#查看pod所在node节点
kubectl get pod volume-test -o wide
#在容器里创建文件
kubectl exec -it volume-test -- sh -c "date >/test-pd/txt"
#删除pod
kubectl delete -f volume-test.yaml
#在node节点检查文件存在
cat /tmp/test-volume/txt
hostPath type类型Directory、File、Socket等
参考 https://feisky.gitbooks.io/kubernetes/concepts/volume.html
#PV PVC
PV PersistentVolume 持久卷,作为存储资源,包含存储实现细节
PVC PersistentVolumeClaim 用户存储的请求,Pod消耗节点资源
#使用NFS后端存储,创建PV、PVC、Pod实例
#创建nfs存储
#NFS服务端 (centos7)
yum install nfs-utils rpcbind -y
mkdir -p /data/nfs/{download,bakup,www}
echo "/data/nfs *(rw,no_root_squash,sync)">>/etc/exports
exportfs -r
systemctl enable rpcbind nfs-server
systemctl restart rpcbind nfs-server
showmount -e localhost
#NFS客户端(Node节点)
yum install nfs-utils rpcbind -y
systemctl start rpcbind
systemctl enable rpcbind
#创建PV
#pv1-demo.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv1
spec:
capacity: #存储能力
storage: 10Gi
accessModes:
- ReadWriteMany #读写权限,多节点挂载
persistentVolumeReclaimPolicy: Retain #回收策略 保留数据
nfs:
path: /data/nfs
server: 172.16.11.141
#创建pv
kubectl create -f pv1-demo.yaml
#查看
kubectl get pv
创建PVC
#pvc-nfs-demo.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-nfs
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
kubectl create -f pvc-nfs-demo.yaml
kubectl get pvc
kubectl get pv
部署Pod使用pvc实例
#nfs-pvc-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nfs-pvc
spec:
replicas: 3
template:
metadata:
labels:
app: nfs-pvc
spec:
containers:
- name: nginx
image: alivv/nginx:node
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: web
#使用volume
volumeMounts:
- name: www
subPath: nginx-pvc #远程子路径
mountPath: /usr/share/nginx/html
volumes:
- name: www
persistentVolumeClaim:
claimName: pvc-nfs
#部署Pod使用pvc实例
kubectl apply -f nfs-pvc-deploy.yaml
#查看
kubectl get pod
#NFS节点写入index.html文件
echo nfs pvs test $(date +"%F %T") |tee /data/nfs/nginx-pvc/index.html
#查看Pod ip
kubectl get pod -o wide
#访问Pod ip,查看内容为NFS节点写入内容
kubectl get pod -o wide |awk '/nfs-pvc/{print "curl "$6}'
kubectl get pod -o wide |awk '/nfs-pvc/{print "curl "$6}' |sh
#删除demo
kubectl delete -f nfs-pvc-deploy.yaml
kubectl delete -f pvc-nfs-demo.yaml
kubectl delete -f pv1-demo.yaml
Blog地址 https://www.cnblogs.com/elvi/p/11755813.html
本文git地址 https://gitee.com/almi/k8s/tree/master/notes
6.k8s.存储Volume.PV.PVC的更多相关文章
- k8s系列---存储卷pv/pvc。configMap/secert
因为pod是有生命周期的,pod一重启,里面的数据就没了.所以我们需要数据持久化存储. 在k8s中,存储卷不属于容器,而是属于pod.也就是说同一个pod中的容器可以共享一个存储卷. 存储卷可以是宿主 ...
- 8.1 k8s使用PV/PVC做数据持久化运行redis服务,数据保存至NFS
1.制作redis docker镜像 1.1 准备alpine基础镜像 # 下载 docker pull alpine:3.13 # 更改tag docker tag alpine:3.13 192. ...
- 4.k8s存储之Volume、PV、PVC和StatefulSet
3.Volume 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失--容器以干净的状态(镜像最初的 ...
- k8s的持久化存储PV&&PVC
1.PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足. 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volu ...
- K8S系列第九篇(持久化存储,emptyDir、hostPath、PV/PVC)
更多k8s内容,请关注威信公众好:新猿技术生态圈 一.数据持久化 Pod是由容器组成的,而容器宕机或停止之后,数据就随之丢了,那么这也就意味着我们在做Kubernetes集群的时候就不得不考虑存储的问 ...
- k8s存储 pv pvc ,storageclass
1. pv pvc 现在测试 glusterfs nfs 可读可写, 多个pod绑定到同一个pvc上,可读可写. 2. storageclass 分成两种 (1) 建立pvc, 相当于多个 ...
- k8s-数据持久化存储卷,nfs,pv/pvc
目录 数据持久化-储存卷 官方文档 存储卷类型 1.emptyDir 2.hostpath 3.pv/pvc(推荐使用) nfs官方文档 安装测试nfs pv/pvc管理nfs 官方文档 pv/pvc ...
- k8s入门之PV和PVC(八)
某些应用是要持久化数据的,如果直接持久化在pod所在节点,当pod因为某种原因重建或被调度另外一台节点,是无法访问到之前持久化的数据,所以需要一个公共存储数据的地方,无论pod删除重建或重新调度到其他 ...
- Kubernetes 存储卷管理 PV&PVC(十)
目录 一.emptyDir 二.hostPath 三.PV & PVC 1.NFS PersistentVolume 2.创建 PVC 3.创建 Pod 进行挂载 为了持久化保存容器的数据,可 ...
随机推荐
- 去除多余的Merge branch提交
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xuexingyang/article/d ...
- scp 自动带密码参数复制文件到主机
一.安装sshpass工具 [root@zabbix_server scripts]# yum install sshpass 二.运行 [root@zabbix_server scripts]# s ...
- 彻底解决 TypeScript 报错:“无法重新声明块范围变量”的问题
背景 当使用 TypeScript + TSlint + Babel + Jest 搭建开发环境时,在开发过程中偶尔会被 IDE 提示「无法重新声明块范围变量」,从而导致编译出错,报错图示如下: 相关 ...
- Spring AOP 使用注解定义切面(转载)
原文地址:http://www.jianshu.com/p/6f40dddd71a5 1.定义切面 下面我们就来定义一场舞台剧中观众的切面类Audience: package com.spring.a ...
- mysql时间函数操作
Mysql时间转换函数 https://blog.csdn.net/w_qqqqq/article/details/88863269 mysql时间日期函数 https://www.cnblogs.c ...
- Excel筛选操作
Excel的筛选操作如下: 选中指定列: 点击"开始"中的"排序和筛选" 点击如下小三角即可按条件进行筛选
- ZROI 19.08.08模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 首先恭喜swk今天翻车! "小心大样例演你."--天祺鸽鸽 果然swk今天被大样例演死了,天祺鸽鸽诚不欺我! A ...
- pt-align的用法简要记录
pt-align的用法简要记录 1.pt-align 功能:将其它工具的输出按列对齐用法:pt-align [FILES]如果没有指定文件,则默认读取标准输入的内容. 2.例如: [root@dbte ...
- Python 3标准库课件
开课前的一些讲话: 一.大家晚上好,首先非常的荣幸能够在网易云平台开设讲解Python的这门课程,我也是第一次讲解哦,下面说说我讲解课程的原因,1.因为我发现市场上讲解Python的课程很多,不过,大 ...
- 【NOIP2016普及组复赛】魔法阵
题目 分析 设xd-xc为i,那么xb-xa=2i, 又因为xb-xa<(xc-xb)/3, 那么c>6i+b. 于是,先枚举i, 再分别枚举xa和xd, 根据之间的关系,用前缀和求出每一 ...