K8S存储卷和数据卷

news2024/11/18 3:42:31

                         容器内的目录和宿主机的目录进行挂载

容器在系统上的生命周期是短暂的,delete,k8s用控制器创建的pod,delete相当于重启,容器的状态也会恢复到初始状态,一旦回到初始状态,所有的后天编辑的文件都会消失

容器和几点之间创建一个持久化保存容器内文件的存储卷,即使容器被销毁,删除,重启,节点上的存储卷的数据依然存在,后续也可以继续使用。可以继续将容器内的目录和宿主机挂载,保存的数据继续使用

三种存储方式

emptyDir

作用:

容器内部共享存储卷,k8s系统中,是一个pod当中的多个容器共享一个存储卷目录emptyDir卷可以是pod当中容器在这个存储卷上读取和写入

EmpytyDir是不能挂载到节点的,随着pod的生命周期结束,emptyDir也会结束,数据也不会保留

所以emptyDir就是用来容器内部的共享,lnmp

hostPath

将容器内的挂载点,和节点上的目录进行挂载,hostPath可以实现数据的持久化,node节点被销毁,那么数据也会丢失

面试题:污点设置为NoExecute:节点上的pod会被驱逐,文件数据在不在?

1.Pod被驱逐,并不是node节点被销毁,所有数据还保留在节点上

2.Pod被驱逐(基于控制器创建的)会在其他节点部署,并且会在其他节点上生成一个新的存储卷,数据依然可以持久化

3.EmptyDir的共享数据,会丢失

NFS共享存储

所有的pod内的目录都和节点上的nfs共享目录形成数据卷,所有的数据文件都保存在共享目录当中,集中,方便管理

 查看同一容器不同副本的log

[root@master01 k8s.yaml]# kubectl logs nginx-c85454d4d-4m6p2 -c nginx1
[root@master01 k8s.yaml]# kubectl logs nginx-c85454d4d-4m6p2 -c nginx2

 emptyDir

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.22
        name: nginx1
        volumeMounts:
        - name: html
          mountPath: /usr/share/nginx/html/
#第一个name,存储的名称,可以自定义,mountpath,定义容器内的挂载目录点,和节点或者##其他容器的共享目录
      - image: nginx:1.22
        name: nginx2
        volumeMounts:
        - name: html
          mountPath: /data/
#引用上一个挂载的名称,表示我将和、usr/share/nginx/html这个目录挂载,由data目录和他挂载
        command: ["/bin/bash","-c", "while true; do echo $(date) >> /data/index.html; sleep 2; done"]
#每隔两秒打印一下当前时间
      volumes:
      - name: html
        emptyDir: {}

 hostPath

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.22
        name: nginx1
        volumeMounts:
        - name: html
          mountPath: /usr/share/nginx/html
#第一个name,存储的名称,可以自定义,mountpath,定义容器内的挂载目录点,和节点或者##其>他容器的共享目录
      - image: nginx:1.22
        name: nginx2
        volumeMounts:
        - name: html
          mountPath: /data
#引用上一个挂载的名称,表示我将和、usr/share/nginx/html这个目录挂载,由data目录和他挂载

        command: ["/bin/bash","-c", "while true; do echo $(date) >> /data/index.html; sleep 2; done"]
      volumes:
      - name: html
        hostPath:
          path: /opt/test1
          type: DirectoryOrCreate
#如果没有/opt/test1就直接创建
# /usr/share/nginx/html, /data ,/opt/test1 ,三者是一体的,在节点上的目录里创建或者修改文件都会改变容器内的文件,不同节点上除了index.html是一样的,其他不一样

 

 NFS共享存储

[root@k8s4 ~]# vim /etc/exports
/data/volumes 192.168.233.0/24(rw,no_root_squash)
[root@k8s4 ~]# cd /data/
[root@k8s4 data]# mkdir volumes
[root@k8s4 data]# chmod 777 volumes
[root@k8s4 data]# systemctl restart rpcbind
Job for rpcbind.service failed because the control process exited with error code. See
#报错之后的操作
[root@k8s4 data]# netstat -antp | grep rpcbind
[root@k8s4 sbin]# kill -9 5513
[root@k8s4 sbin]# systemctl restart rpcbind
[root@k8s4 sbin]# systemctl restart nfs
[root@k8s4 sbin]# showmount -e
Export list for k8s4:
/data/volumes 192.168.233.0/24
#到master01操作
[root@master01 k8s.yaml]# showmount -e 192.168.233.84
Export list for 192.168.233.84:
/data/volumes 192.168.233.0/24
[root@master01 k8s.yaml]# vim e.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.22
        name: nginx1
        volumeMounts:
        - name: html
          mountPath: /usr/share/nginx/html
#第一个name,存储的名称,可以自定义,mountpath,定义容器内的挂载目录点,和节点或者##其>他容器的共享目录
      - image: nginx:1.22
        name: nginx2
        volumeMounts:
        - name: html
          mountPath: /data
#引用上一个挂载的名称,表示我将和、usr/share/nginx/html这个目录挂载,由data目录和他挂载

        command: ["/bin/bash","-c", "while true; do echo $(date) >> /data/index.html; sleep 2; done"]
      volumes:
      - name: html
        nfs:
          path: /data/volumes
          server: 192.168.233.84
#这里的server可以是ip地址也可以用主机名来替代 如k8s ,主机名要做映射,所有的节点都必须>要做

 

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

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

相关文章

rax3000m 刷机 uboot + immortalwrt

0. 环境 - win10 ubuntu22 - rax3000m 生产日期20231027 一台(nand版本的) 1. 上电,登录web 电脑连接路由器LAN1 http://192.168.10.1/ 账号:user 密码:KK6kYC!3 上网设置:自动获取IP 2. 开启 ssh 2…

Linux CentOS 7.6安装JDK详细保姆级教程

一、检查系统是否自带jdk java --version 如果有的话,找到对应的文件删除 第一步:先查看Linux自带的JDK有几个,用命令: rpm -qa | grep -i java第二步:删除JDK,执行命令: rpm -qa | grep -i java | xarg…

软件测试工程师,从6K到25k的测试之路养成,一路狂飙...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、技术方向 就技…

华为数通HCIA题库(750题)

完整题库在这里:华为数通HCIA-RS题库注释版-加水印.pdf资源-CSDN文库 此处只节选几题。 1.网络管理员在网络中捕获到了一个数据帧,其目的MAC地址是01-00-5E-AO-B1-C3。关于该MAC地址的说法正确的是( )。 A.它是一个单播MAC地址 B.它是一个广播…

linux 里面在docker 里面安装pg 数据库(亲测有效)

目录 1 上传 1 上传 上传之后tar 包,将他变成镜像 输入docker images,发现目前是没有镜像的,现在将tar 包变成镜像 docker load -i postgresql.tar以上就将tar 包变成镜像了 现在在宿主机找一个地方,存放数据库的数据 /home/softinstall/…

Unity 实用方法 合集

Unity 实用方法 合集 Unity 打字机效果2D 坐标旋转计算球面坐标求值平滑移动鼠标位置获取2D屏幕坐标转世界坐标物体朝向目标多物体中心点生成本地图片加载画面线框显示画面线框显示 搭载效果 贝塞尔曲线绘制贝塞尔曲线绘制 搭载效果 网格弯曲网格弯曲 搭载效果 Delaunay 模型生…

【FPGA/verilog -入门学习17】vivado 实现串口自发自收程序

1,需求 PC使用串口助手给FPGA板发送9600 波特率的数据,FPGA板接收到数据后,回复同样的数据给PC 2,需求分析 按模块可以划分为: rx接收模块,将输入的8位并行rx 数据转换成[7:0]rx_data 信号,当…

性能优化--实战利用arthas排查java服务cpu占用过高的问题

使用jps -l查看目前的java应用进程 启动arthas,选择需要监控的进程 dashboar查看该应用整体情况 使用thread命令,查看占用cpu过高的几个线程ID 然后使用thread 线程ID查看具体线程在执行哪些内容,可以看到对应的类和方法 正在上传… 重…

K8S实践:非常实用kubectl的别名工具推荐,助你高效工作

转载至我的博客 ,公众号:架构成长指南 大家好,我是蜗牛哥,今天介绍一款k8s的别名工具,可以让你高效工作,下面是相关介绍 介绍 我们在管理 Kubernetes集群和执行指定任务是比较复杂和费时的。但是如果使用…

益生菌抗癌?补充这种益生菌,抑制肝癌,还改善肠道健康

撰文 | 宋文法 肠道菌群,是人体不可分割的组成部分,生活在我们肠道内的数万亿细菌对健康起着重要作用,它们影响着人的新陈代谢、消化能力、抵御感染、控制人体对药物的反应,甚至还能预防某些癌症。 非酒精性脂肪肝病,是…

虚幻UE 材质-纹理 1

本篇笔记主要讲两个纹理内的内容:渲染目标和媒体纹理 媒体纹理可以参考之前的笔记:虚幻UE 媒体播放器-视频转成材质-播放视频 所以本篇主要讲两个组件:场景捕获2D、场景捕获立方体 两个纹理:渲染目标、立方体渲染目标 三个功能&am…

构建高效学习平台:企业培训系统源码深度解析

企业培训系统是组织中培养和提升员工技能的核心工具。本文将深入探讨企业培训系统的源码,通过关键技术代码解析,揭示其中的设计原理和功能实现,以构建更高效的学习平台。 1. 环境配置与依赖项安装 首先,让我们关注源码的环境配…

Vue3:Axios配置及使用

Axios官方 一、安装: //使用 npm: $ npm install axios//使用 bower: $ bower install axios//使用 yarn: $ yarn add axios 在package-lock.json文件可以查看axios版本 二、配置: milliaAxios.js 配置axios import axios from axios // 创建一个 ax…

AI老照片修复-Bringing-Old-Photos-Back-to-Life

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. AI老照片修复原理-…

AP5153 低压差 线性降压恒流IC 手电筒LED电源驱动

AP5153 是一种 PWM 调光的、低压 差的 LED 线性降压恒流驱动器。 AP5153 仅需要外接一个电阻和一个 NMOS 管就可以构成一个完整的 LED 恒 流驱动电路, 调节该外接电阻就可以调节 输出电流,输出电流可调范围为 20mA 到 3.0A。 AP5153 还可以通过在 DIM…

怎么修改照片尺寸?来分享3款实用的工具!

在当今的自媒体时代,照片是吸引读者眼球的重要元素之一。有时候,我们需要在不同的平台上传照片,但不同的平台对照片的尺寸要求却不尽相同。为了满足这些要求,我们经常需要修改照片的尺寸。那么,如何快速、准确地修改照…

Linux内核之红黑树详解(2)

该博客结合了维基百科、博客和一些其他的资料,按照理解整理的,如有错误,欢迎指正。 1、创建红黑树: 在实现插入、删除等操作之前,需要先创建一棵红黑树,返回的是红黑树的根结点: RBRoot* crea…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑤

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷5 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷5 模块一 …

《MyBatis》--多数据源使用实现--超级详细!!!!

阿丹-需求/场景: 在项目中可能要使用到几个数据源,所以本文章解决一个项目中多个数据源的方式。使用简单的配置和注解来实现。 适用于在确定的数据源的场景下。 实现: 三个核心: 构造DataSource、SqlSessionFactory、SqlSessio…

TS 36.322 V12.0.0-过程

​本文的内容主要涉及TS 36.322,版本是C00,也就是V12.0.0。