Kubernetes 之硬盘持久化和 EmptyDir 与 HostPath 挂载类型

2024-05-27 03:52

本文主要是介绍Kubernetes 之硬盘持久化和 EmptyDir 与 HostPath 挂载类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Kubernetes 之硬盘持久化和 EmptyDir 与 HostPath 挂载类型

持久化存储的意义

在 Kubernetes 中部署的应用都是以 Pod 的方式运行的。大部分情况这些 Pod 是无状态的。但是假如我们部署数据库或者需要一个存放关键文件的文件夹的时候,这时候我们就需要存储持久化以防止数据丢失。因为 Pod 是有生命周期的,如果 Pod 不挂载数据卷,那 Pod 被删除后这些数据会随之消失,对整个项目造成严重影响。它通常有emptyDirhostPathnfs三种挂在模式。

EmptyDir 定义与使用

EmptyDir 是 Pod 多容器之间共享的临时性沟通目录,它会随着 Pod 的删除而删除。它通常只是用来多容器共享数据之用。

apiVersion: v1
kind: Pod
metadata:name: pod-empty-dirnamespace: default
spec:containers:- name: container-write-empty-dirimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh"]args: ["-c","sleep 3600"]volumeMounts:- mountPath: /write-testname: test-volume- name: container-read-empty-dirimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh"]args: ["-c","sleep 3600"]volumeMounts:- mountPath: /read-testname: test-volumevolumes:- name: test-volumeemptyDir:sizeLimit: 500Mi
root@k8s-master1:~# kubectl exec pod-empty-dir -c container-write-empty-dir -it -- /bin/sh
/ # echo "hello world" > /write-test/test.txt
/ # exitroot@k8s-master1:~# kubectl exec pod-empty-dir -c container-read-empty-dir -it -- cat /read-test/test.txt
hello world

HostPath 定义与使用

HostPath 只是将 Pod 中容器的目录映射到其所在的工作节点上,Pod 被删除后,该目录依旧存在于工作节点上。但是当恢复Pod节点的时候,它不一定存在于原来的工作节点上,所以这种挂在方式很不常用。

apiVersion: v1
kind: Pod
metadata:name: pod-host-pathnamespace: default
spec:containers:- name: container-host-pathimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh"]args: ["-c","sleep 3600"]volumeMounts:- mountPath: /testname: test-volumevolumes:- name: test-volumehostPath:path: /tmp/test-host-pathtype: DirectoryOrCreate

这篇关于Kubernetes 之硬盘持久化和 EmptyDir 与 HostPath 挂载类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006448

相关文章

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET