Kubernetes之存储管理(上)

news2024/9/30 19:38:28

数据持久化的主要方式简介

pod是临时的,pod中的数据随着pod生命周期的结束也会被一起删除。
pod想实现数据持久化主要有以下几种方式:

  1. emptyDir:类似于docker run –v /xx,在物理机里随机产生一个目录(这个目录其实挂载的是物理机内存),然后把这个目录挂载到容器里/xx目录。当pod删除时,emptyDir对应的目录也会被删除。一般做临时存储。
  2. hostPath:类似于docker run –v /data:/xx,将物理机里的/data目录隐射到容器里的/xx目录,删除pod后,数据仍然保留。pod迁移数据不会跟着迁移,继续保留在原来的物理机。
  3. NFS网络存储
    解决了hostPath存在的问题,但在pod中配置不便。
  4. 持久性存储
    创建PV,从PV创建PVC
  5. 动态卷供应
    不需要提前创建PV,只要创建好storageClass之后就不用管PV了,用户创建PVC时,storageClass会自动创建一个pv和这个pvc绑定

使用emptyDir做临时存储

类似于docker run –v /xx,在物理机里随机产生一个目录(这个目录其实挂载的是物理机内存),然后把这个目录挂载到容器里/xx目录。当pod删除时,emptyDir对应的目录也会被删除。一般做临时存储或两个容器之间的共享存储。

  • 创建新目录
mkdir ~/volume
cd ~/volume
  • 创建emp.yaml文件
apiVersion: v1
kind: Pod
metadata:
  name: pod1
spec:
  volumes:
  - name: volume1                   ## 创建一个卷
    emptyDir: {}
  containers:
  - image: nginx
    imagePullPolicy: IfNotPresent
    name: pod1
    volumeMounts:
    - name: volume1                        ## 将创建的卷挂载
      mountPath: /usr/share/nginx/html

注意:/usr/share/nginx/html目录不存在的话会自动创建

  • 创建pod,查看状态
kubectl apply -f emp.yaml
kubectl get pod

在这里插入图片描述

  • 查看该pod在哪个主机运行
kubectl get pod -o wide

在这里插入图片描述

  • 在sun005上查看容器属性
docker ps | grep pod1
docker inspect 86711c8d7914

在这里插入图片描述
在这里插入图片描述

  • 上传文件测试,可以看到实现了数据共享
kubectl cp emp.yaml pod1:/usr/share/nginx/html
kubectl exec pod1 -- ls /usr/share/nginx/html
cd /var/lib/kubelet/pods/3d5a4eb0-3201-4c83-85a5-abb1d8ae390f/volumes/kubernetes.io~empty-dir/volume1
ls

在这里插入图片描述
在这里插入图片描述

  • 删除此pod,可以看到,临时目录也被删除
kubectl delete -f emp.yaml

在这里插入图片描述
在这里插入图片描述

使用hostPath做本地存储

类似于docker run –v /data:/xx,将物理机里的/data目录隐射到容器里的/xx目录,如果删除pod后,数据仍然保留。pod迁移数据不会跟着迁移,继续保留在原来的物理机。

  • 创建hostpath.yaml文件
apiVersion: v1
kind: Pod
metadata:
  name: pod1
spec:
  volumes:
  - name: volume1                                   ## 创建一个hostPath的卷,名字为volume1
    hostPath:
      path: /var/www/html
  containers:
  - image: nginx
    imagePullPolicy: IfNotPresent
    name: pod1
    volumeMounts:                                  ## 将创建的卷挂载
    - name: volume1
      mountPath: /usr/share/nginx/html
  • 创建pod,查看pod运行的节点
kubectl apply -f hostpath.yaml
kubectl get pod -o wide

在这里插入图片描述

  • 在sun005上测试,可以看到数据成功共享
docker ps | grep pod1
docker inspect b7e6821a834f
kubectl cp emp.yaml pod1:/usr/share/nginx/html
kubectl cp hostpath.yaml pod1:/usr/share/nginx/html
kubectl exec pod1 -- ls /usr/share/nginx/html
ls /var/www/html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 删除此pod,可以看到,在物理机上该目录仍然存在
kubectl delete -f emp.yaml

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

墨天轮2022年度数据库获奖名单

2022年,国家相继从高位部署、省级试点布局、地市重点深入三个维度,颁布了多项中国数据库行业发展的利好政策。但是我们也能清晰地看到,中国数据库行业发展之路道阻且长,而道路上的“拦路虎”之一则是生态。中国数据库的发展需要多…

如何创建发布新品上市新闻稿

推出新产品对任何企业来说都是一个激动人心的时刻,但向潜在客户宣传并围绕您的新产品引起轰动也可能是一个挑战。最有效的方法之一就是通过发布新品上市新闻稿。精心制作的新闻稿可以帮助我们通过媒体报道、吸引并在目标受众中引起关注。下面,我们将讲述…

计算机组成原理4小时速成2:计算机运算方法,原码,反码,补码,移位,加法减法,乘除法

计算机组成原理4小时速成2:计算机运算方法,原码,反码,补码,移位,加法减法,乘除法 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多…

OpenCV入门(二)快速学会OpenCV1图像基本操作

OpenCV入门(一)快速学会OpenCV1图像基本操作 不讲大道理,直接上干货。操作起来。 众所周知,OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大。今天就从读取图片,显示图片,输出图片信息和简单的…

记录自己遇到的关于Hashmap的面试题

一.麻烦讲述一下Hashmap的扩容原理 jdk1.8中的hashmap扩容原理 1.put流程图 首先贴一张图(图片来源于传送门),多谢大佬的美图,此图已经完美的描述了put的整个流程,我也就不想自己画了,嘿嘿: 2.hashmap中几个比较重…

hive临时目录清理

hive运行失败会导致临时目录无法自动清理,因此需要自己写脚本去进行清理 实际发现hive临时目录有两个: /tmp/hive/{user}/* /warehouse/tablespace//hive/**/.hive-staging_hive 分别由配置hive.exec.scratchdir和hive.exec.stagingdir决定: 要注意的…

requests---(4)发送post请求完成登录

前段时间写过一个通过cookies完成登录,今天我们写一篇通过post发送请求完成登录豆瓣网 模拟登录 1、首先找到豆瓣网的登录接口 打开豆瓣网站的登录接口,请求错误的账号密码,通过F12或者抓包工具找到登录接口 通过F12抓包获取到请求登录接口…

每日分享(微信社区小程序/h5/圈子论坛贴吧交友/博客/社交)

1.Java单元测试实战 高清PDF中文版 Java单元测试实战来自于作者多年来的单元测试实践,最初发表在阿里内网的ATA上,成为了很多阿里同学单元测试学习的必读文章。很多程序员认为单元测试会花费大量的时间,因此他们写单元测试的意愿比较低&…

【同步工具类:Semaphore】

同步工具类:Semaphore介绍源码分析构造函数acquire 获取信号量release 释放信号量业务场景代码测试结果总结介绍 官方说明: Semaphore用于限制可以访问某些资源(物理或逻辑的)的线程数目,他维护了一个许可证集合,有多少资源需要限…

vue2、vue3组件传值,引用类型,对象数组如何处理

vue2、vue3组件传值,引用类型,对象数组如何处理 Excerpt 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父… 下述组件传值指引…

【Go|第1期】Go遍历目录的三种方法

日期:2023年3月1日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

web,h5海康视频接入监控视频流记录一

项目需求,web端实现海康监控视频对接接入,需实现实时预览,云台功能,回放功能。 web端要播放视频,有三种方式,一种是装浏览器装插件,一种是装客户端exe,还有就是无插件了。浏览器装插…

垃圾回收的概念与算法(第四章)

《实战Java虚拟机:JVM故障诊断与性能优化 (第2版)》 第4章 垃圾回收的概念与算法 目标: 了解什么是垃圾回收学习几种常用的垃圾回收算法掌握可触及性的概念理解 Stop-The-World(STW) 4.1. 认识垃圾回收 - 内存管理清洁工 垃圾…

vue keep-alive多层级路由支持

keep-alive使用 属性值 1.include - 字符串或正则表达式。只有名称匹配的组件会被缓存。 2.exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。 3.max - 数字。最多可以缓存多少组件实例。 注:匹配首先检查组件自身的 name 选项,如果 nam…

用ab压测工具搞垮目标网站

一、介绍ab 命令会创建很多的并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的,因此,既可以用来测试 Apache 的负载压力,也可以测试 nginx、lighthttp、tomcat、IIS 等其它 Web 服务器的压力。…

数据结构与算法——6.Comparable接口

这篇文章我们一起来看一下java中的Comparable接口 目录 1.学数据结构与算法的小套路 2.Comparable接口介绍 3.小结 1.学数据结构与算法的小套路 我们知道java是面向对象的,并且底层为我们封装了许多的方法。在java的开发工具包jdk中,已经给我们提供…

XGBoost简单介绍

1. 概述 XGBoost本身的核心是基于梯度提升树实现的集成算法,整体来说可以有三个核心部分:集成算法本身,用于集成的弱评估器,以及应用中的其他过程。 1.1 提升集成算法: XGBoost的基础是梯度提升算法,因此…

kali linux安装换源切换系统语言

安装 去官网 https://www.kali.org/ 找到自己合适的虚拟机版本,我们不要下载那个torrent,那个还要重新下载一遍 换源 sudo vim /etc/apt/sources.list 按 i 进入vim的编辑模式 用 # 把用来的注释掉,一定要去掉 在后面补上国内的源&#x…

【论文/写作】计算机论文写作全攻略总结

如果觉得我的分享有一定帮助,欢迎关注我的微信公众号 “码农的科研笔记”,了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【论文/写作】计算机论文写作全攻略总结 机器翻译学术论⽂写作⽅法和技巧 https://nlp.csai.tsinghua.edu.cn/~ly/tal…

一篇搞定ShardingSphere-jdbc 实战

谈到分库分表中间件时,我们自然而然的会想到 ShardingSphere-JDBC 。这篇文章,我们聊聊 ShardingSphere-JDBC 相关知识点,并实战演示一番。1 ShardingSphere 生态Apache ShardingSphere 是一款分布式的数据库生态系统,它包含两大产…