热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

persistent_《四》Volume&PersistentVolume

本文由编程笔记#小编为大家整理,主要介绍了《四》Volume & PersistentVolume相关的知识,希望对你有一定的参考价值。 Volume 由于pod销毁后,导致数据也会销毁,就得用到V
本文由编程笔记#小编为大家整理,主要介绍了《四》Volume & PersistentVolume相关的知识,希望对你有一定的参考价值。



Volume

由于pod销毁后,导致数据也会销毁,就得用到Volume

参考文档:https://kubernetes.io/docs/concepts/storage/volumes/


emptyDir

创建一个空卷,挂载到Pod中的容器。Pod删除该卷也会被删除。
应用场景:Pod中容器之间数据共享

技术分享图片

通过-c 指定哪个容器
kubectl logs -c read my-pod


hostPath

共享宿主机目录,pod分配在哪个node上,就是共享的node上的目录或者文件

由于共享的是tmp,这是目录,所以用Directory,若是共享1.txt,这个是文件,就是File
技术分享图片

查看分配到了哪个node上:
技术分享图片

在192.168.1.24的/tmp创建目录或者文件,因为是共享的tmp,在进入容器里验证,这里的共享可以删除修改

总结:以上都是本地的数据卷,若是pod删除了,k8s把你再拉起一个pod,在另外的node上,那就看不到了,需要使用网络的数据库nfs


网络数据卷-nfs

node节点都要安装,因为你创建pod时k8s会帮你调到任意的node
服务端:192.168.1.25 安装 yum install nfs-utils -y
[[email protected] ~]# cat /etc/exports
/data/nfs *(rw,no_root_squash)

启动:systemctl start
客户端:192,168.1.23 安装 yum install nfs-utils -y
客户端:192,168.1.24 安装 yum install nfs-utils -y

技术分享图片

技术分享图片

验证:
http://192.168.1.23:34293/
http://192.168.1.24:34293/


PersistentVolumes(持久卷) 和PersistentVolumeClaim(持久卷申请)

Pod 消费 Node 的资源,PVCs 消费 PV 的资源

先创建需求pvc:

技术分享图片

再创建好的资源pv:
必须要有/data/nfs/wwwroot 这个目录
技术分享图片

1、kubectl apply -f pvc.yaml
kubectl apply -f my-pv.yaml
2、查看绑定(如果pv有使用过,则需要重建):
技术分享图片

pvc必须根据容量和访问模式才能匹配pv

3、验证访问
http://nodeip:serviceport

总结:
Access Modes 访问模式:
ReadWriteOnce – the volume can be mounted as read-write by a single node (单node的读写)
ReadOnlyMany – the volume can be mounted read-only by many nodes (多node的只读)
ReadWriteMany – the volume can be mounted as read-write by many nodes (多node的读写)
Notice:单个PV挂载的时候只支持一种访问模式

pv:运维/存储人员提供
pvc:需求连接
由于上面是手动创建pv,pvc,小规模的话还好,大规模的话就很麻烦,这个时候需要动态供给


PersistentVolume 动态供给

插件文档:https://kubernetes.io/docs/concepts/storage/persistent-volumes/
参考文档:https://github.com/kubernetes-incubator/external-storage

因动态供给有些不支持,需要手动安装插件,比如nfs
技术分享图片

1、kubectl apply -f storageclass-nfs.yaml
2、kubectl apply -f deployment-nfs.yaml
3、kubectl apply -f rbac.yaml
4、kubectl apply -f nginx-demo.yaml

验证:
技术分享图片

自动帮你创建nfs下面的目录:
技术分享图片


推荐阅读
  • kubelet配置cni插件_Kubernetes新近kubectl及CNI漏洞修复,Rancher 2.2.1发布
    今天,Kubernetes发布了一系列补丁版本,修复新近发现的两个安全漏洞CVE-2019-1002101(kubectlcp命令安全漏洞)和CVE-2 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
  • k8shelm官网:https:helm.sh点击charts:https:artifacthub.iopackagessearch?sortrelevance&page11.1h ... [详细]
  • 今天在node节点发现不能查看pod了输入命令错误如下[rootnode01~]#kubectlgetpodTheconnectiontotheserverlocalhost:8 ... [详细]
  • 虚拟机CentOS7挂载文件系统失败上周五下班前没有关闭虚拟机和物理机,今天周一开了虚拟机之后,发现操作系统启动失败。原因跟这篇文章描述的一模一样。解决操作系统的文件系统挂载的问题 ... [详细]
author-avatar
文艺犯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有