当前位置: 首页 > news >正文

K8S--持久卷(PersistentVolume)的用法

原文网址:K8S--持久卷(PersistentVolume)的用法-CSDN博客

简介

本文介绍K8S的持久卷(PersistentVolume)的用法。

目标:用持久卷的方式将主机的磁盘与容器磁盘映射,安装nginx并运行。

-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------

官网

https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

概念

Pod 里的容器是由镜像产生的,进程要读写磁盘只能用一个临时的存储空间,一旦 Pod 销毁,临时存储会立即释放,数据也就丢失了。为保证 Pod 销毁后重建数据依然存在,Kubernetes 使用 Volume 存储文件(一般是容器与主机路径进行映射)。

Volume和使用它的Pod都是一种静态绑定关系,无法像创建其他资源(例如Pod,Node,Deployment等等)一样创建一个Volume。因此K8S提出了PersistentVolume(PV),可以用Kubernetes API创建PersistentVolume对象。PV与Volume最大的不同是PV拥有着独立于Pod的生命周期。

PersistentVolumeClaim(PVC)代表了用户对PV资源的请求。用户需要使用PV资源时,只需要创建一个PVC对象(包括指定使用何种存储资源,使用多少GB,以何种模式使用PV等信息),K8S会自动分配我们所需的PV。

如果把PersistentVolume类比成集群中的Node,那么PersistentVolumeClaim就相当于集群中的Pod,Kubernetes为Pod分配可用的Node,为PersistentVolumeClaim分配可用的PersistentVolume。

准备工作

创建目录并进入。

mkdir -p /work/devops/k8s/pv/mntcd /work/devops/k8s/pv/

1.创建 PersistentVolume

创建pv-volume.yml文件,内容如下:

apiVersion: v1
kind: PersistentVolume
metadata:name: tast-pv-volumelabels:type: local
spec:storageClassName: manualcapacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/work/devops/k8s/pv/mnt"

创建 PersistentVolume

kubectl apply -f pv-volume.yaml

结果

persistentvolume/tast-pv-volume created

查看 PersistentVolume 的信息

kubectl get pv tast-pv-volume

结果

NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
tast-pv-volume   3Gi        RWO            Retain           Available           manual                  6s

输出结果显示该 PersistentVolume 的状态(STATUS)为 Available。 这意味着它还没有被绑定给 PersistentVolumeClaim。 

2.创建 PersistentVolumeClaim

创建pv-claim.yaml文件,内容如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: tast-pv-claim
spec:storageClassName: manualaccessModes:- ReadWriteOnceresources:requests:storage: 1Gi

创建 PersistentVolumeClaim 

kubectl apply -f pv-claim.yaml

结果

persistentvolumeclaim/tast-pv-claim created

再次查看 PersistentVolume 信息:

kubectl get pv tast-pv-volume

结果

NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
tast-pv-volume   3Gi        RWO            Retain           Bound    default/tast-pv-claim   manual                  33s

现在输出的 STATUS 为 Bound。

查看 PersistentVolumeClaim:

kubectl get pvc tast-pv-claim

结果

NAME            STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
tast-pv-claim   Bound    tast-pv-volume   3Gi        RWO            manual         13s

3.创建 Pod

创建pv-pod.yaml文件,内容如下:

apiVersion: v1
kind: Pod
metadata:name: tast-pv-pod
spec:volumes:- name: tast-pv-storagepersistentVolumeClaim:claimName: tast-pv-claimcontainers:- name: tast-pv-containerimage: nginx:latestports:- containerPort: 80name: "nginx-80"volumeMounts:- mountPath: "/usr/share/nginx/html"name: tast-pv-storage

创建 Pod:

kubectl apply -f pv-pod.yaml

 结果

pod/tast-pv-pod created

查看Pod

kubectl get pods -A

结果(已创建)

 

4.访问测试 

进入到容器内部:

kubectl exec -it tast-pv-pod -- bash

用curl访问nginx:

curl http://localhost/

结果:(访问成功)

<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>

5.清理

cd /work/devops/k8s/pv
kubectl delete -f pv-pod.yaml
kubectl delete -f pv-claim.yaml
kubectl delete -f pv-volume.yaml

相关文章:

K8S--持久卷(PersistentVolume)的用法

原文网址&#xff1a;K8S--持久卷(PersistentVolume)的用法-CSDN博客 简介 本文介绍K8S的持久卷(PersistentVolume)的用法。 目标&#xff1a;用持久卷的方式将主机的磁盘与容器磁盘映射&#xff0c;安装nginx并运行。 --------------------------------------------------…...

书生·浦语大模型趣味 Demo笔记及作业

文章目录 笔记作业基础作业&#xff1a;进阶作业&#xff1a; 笔记 书生浦语大模型InternLM-Chat-7B 智能对话 Demo&#xff1a;https://blog.csdn.net/m0_49289284/article/details/135412067书生浦语大模型Lagent 智能体工具调用 Demo&#xff1a;https://blog.csdn.net/m0_…...

2024最新前端源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 粒子文字动画特效 基于canvas实现的粒子文字动画特效 会来回切换设定的文字特效 图…...

Microsoft 365 for Mac激活版(原Office 365)

Microsoft 365 for Mac原office 365&#xff0c;包含Word、Excel、PowerPoint 和 Outlook应用程序&#xff0c;协作办公的最佳首选。 软件下载&#xff1a;Microsoft 365 for Mac激活版下载 Microsoft 365 的一些主要功能包括&#xff1a; office 应用程序&#xff1a;Microsof…...

快乐学Python,Python基础之组织代码「类与对象」

在上一篇文章中&#xff0c;我们了解了函数。这一篇文章我们来了解一下Python中另外一个重要的概念&#xff1a;类与对象。 1、类与对象 &#xff08;1&#xff09;类与对象有什么关系&#xff1f; 你可能会奇怪&#xff0c;为什么要叫类与对象呢&#xff1f;是两个不同的东…...

H5的3D游戏开源框架

在H5的3D游戏框架中&#xff0c;Three.js、Babylon.js和Turbulenz是比较受欢迎的选择。 Three.js是一个广泛应用并且功能强大的JavaScript 3D库&#xff0c;可以创建简单的3D动画到创建交互的3D游戏。 Babylon.js是David Catuhe对3D游戏引擎热爱的结果&#xff0c;是最好的Ja…...

浅谈一些生命周期

vue2生命周期 beforeCreate &#xff1a;实例创建之初 created&#xff1a;组件已经创建完成 beforeMount&#xff1a;组件挂载之前 mounted:组件挂载之后 beforeUpdate&#xff1a;数据发生变化 更新之前 undated&#xff1a;数据发生之后 beforeDestroy &#xff1a;实…...

JavaScript基础(25)_dom查询练习(二)

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>dom查询练习二</title><link rel"stylesheet" href"../browser_default_style/reset.css"><style>form {margi…...

【React系列】React生命周期、setState深入理解、 shouldComponentUpdate和PureComponent性能优化、脚手架

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 生命周期 1.1. 认识生命周期 很多的事物都有从创建到销毁的整个过程&#xff0c;这个过程称之为是生命周期&…...

一文初步了解slam技术

本文初步介绍slam技术&#xff0c;主要是slam技术的概述&#xff0c;涉及技术原理、应用场景、分类、以及各自优缺点&#xff0c;和slam技术的未来展望。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;slam精进之…...

滑动窗口协议仿真(2024)

1.题目描述 滑动窗口协议以基于分组的数据传输协议为特征&#xff0c;该协议适用于在数据链路层以及传输层中对按 顺序传送分组的可靠性要求较高的环境。在长管道传输过程&#xff08;特别是无线环境&#xff09;中&#xff0c;相应的滑动窗口 协议可实现高效的重传恢复。附录 …...

uniapp上传文件时用到的api是什么?格式是什么?

在UniApp中&#xff0c;你可以使用uni.uploadFile()方法来上传文件。这是一个异步方法&#xff0c;用于将本地资源上传到服务器。 该方法的基本格式如下&#xff1a; uni.uploadFile({url: 上传接口地址,filePath: 要上传的文件路径,name: 后端接收的文件参数名,formData: {/…...

Java面试——框架篇

1、Spring框架中的单例bean是线程安全的吗&#xff1f; 所谓单例就是所有的请求都用一个对象来处理&#xff0c;而多例则指每个请求用一个新的对象来处理。 结论&#xff1a;线程不安全。 Spring框架中有一个Scope注解&#xff0c;默认的值就是singleton&#xff0c;单例的。一…...

GO语言笔记1-安装与hello world

SDK开发工具包下载 Go语言官网地址&#xff1a;golang.org&#xff0c;无法访问Golang中文社区&#xff1a;首页 - Go语言中文网 - Golang中文社区下载地址&#xff1a;Go下载 - Go语言中文网 - Golang中文社区 尽量去下载稳定版本&#xff0c;根据使用系统下载压缩包格式的安装…...

指针传参误区

C语言中指针作为形参传递时&#xff0c;func&#xff08;*a, *b&#xff09; 这种形式的话&#xff0c;是无法通过简单的 ab来修改的&#xff0c;在函数体内a的地址确实被修改成b的地址了&#xff0c;但是当函数执行结束时&#xff0c;a的地址会重新回到原本的地址里面&#xf…...

力扣-42.接雨水

题目&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组[0,1,0,2…...

LeetCode-移动零(283)

题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 思路&#xff1a; 这里的思路跟以前做过的去重复数字的思路有点像&…...

文件系统与日志分析

一&#xff0c;文件系统 &#xff08;一&#xff09;inode 和block概述 1&#xff0c;文件数据包括元信息与实际数据 2&#xff0c;文件存储在硬盘上&#xff0c;硬盘最小存储单位是“扇区”&#xff0c;每个扇区存储512字节 3&#xff0c;block (块) 连续的八个扇区组成一…...

labview 与三菱FX 小型PLC通信(OPC)

NI OPC服务器与三菱FX3U PLC通讯方法 一、新建通道名称为&#xff1a;MIT 二、选择三菱FX系列 三、确认端口号相关的参数&#xff08;COM端&#xff1a;7.波特率&#xff1a;9600&#xff0c;数据位&#xff1a;7&#xff0c;校验&#xff1a;奇校验&#xff0c;停止位&#xf…...

掌握Linux网络配置:价格亲民,操作简便!

前言 在Linux系统中&#xff0c;网络配置是实现连接、通信和安全的重要一环。无论你是初学者还是有经验的用户&#xff0c;掌握网络配置命令能帮助你轻松管理网络接口、设置IP地址以及查看连接状态。以下是一些关键命令和示例&#xff0c;让你快速掌握网络操作的精髓&#xff…...

OpenClaw 接入微信 / 企业微信完整教程

本文介绍如何通过 OpenClaw 框架&#xff0c;将个人微信和企业微信接入 AI Agent&#xff0c;实现「AI 自动回复」的功能。适用于树莓派、Mac/Windows 电脑、NAS 或云服务器等各类设备。 一、环境准备 1.1 安装 OpenClaw OpenClaw 是核心运行环境&#xff0c;负责加载插件、管…...

大模型上手指南:从跑通到解剖,一步步深入核心机制!

本文提供了一套从零开始、由浅入深的实践路径&#xff0c;指导读者如何系统性地分析和学习大模型。首先通过配置环境、加载本地模型并成功进行推理&#xff0c;让读者直观感受模型运行。接着&#xff0c;结合运行结果回顾 Transformer、Tokenization 等核心概念&#xff0c;并探…...

原神模型导入终极指南:GIMI深度定制框架完全解析

原神模型导入终极指南&#xff1a;GIMI深度定制框架完全解析 【免费下载链接】GI-Model-Importer Tools and instructions for importing custom models into a certain anime game 项目地址: https://gitcode.com/gh_mirrors/gi/GI-Model-Importer 原神模型导入&#x…...

汽车芯片市场深度解析:从电动化、智能化到供应链变革

1. 汽车芯片行业&#xff1a;短期阵痛与长期增长的辩证观最近和几个在车厂和Tier 1供应商做研发的老朋友聊天&#xff0c;大家普遍的感觉是&#xff1a;冰火两重天。一边是终端市场感觉“卷”得厉害&#xff0c;销量波动、价格战不停&#xff1b;另一边&#xff0c;研发部门的芯…...

从习题到实战:掌握随机变量及其分布的5个核心场景

1. 从杯子分球看离散型随机变量 想象你面前有4个空杯子和3个乒乓球&#xff0c;随手把球扔进杯子里会发生什么&#xff1f;这个看似简单的游戏&#xff0c;其实是理解离散型随机变量的绝佳案例。X代表"杯子中球的最大个数"&#xff0c;它可能取值为1、2、3——这就是…...

如何在Windows电脑上轻松安装安卓应用:5步完成轻量级跨平台部署

如何在Windows电脑上轻松安装安卓应用&#xff1a;5步完成轻量级跨平台部署 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否想在Windows电脑上运行安卓应用&…...

APK Installer终极指南:如何在Windows上快速安装安卓应用?

APK Installer终极指南&#xff1a;如何在Windows上快速安装安卓应用&#xff1f; 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows上安装安卓应用而烦恼吗…...

AI浏览器扩展实战:从原理到应用,提升网页AI体验

1. 项目概述与核心价值如果你和我一样&#xff0c;每天花大量时间在浏览器里和各类AI工具打交道&#xff0c;那你肯定也遇到过这些烦心事&#xff1a;在亚马逊上挑个商品&#xff0c;想问问AI哪个型号更划算&#xff0c;得手动复制粘贴商品信息到另一个聊天窗口&#xff1b;用C…...

别再只盯着快充了!聊聊交流充电桩(慢充)对电池寿命的友好设计

慢充才是真爱护&#xff1a;揭秘交流充电桩如何用"温柔算法"延长电池寿命 当大多数电动车车主还在为"充电5分钟续航200公里"的快充技术欢呼时&#xff0c;一群电池工程师和资深电车玩家却悄悄把家用充电桩调成了最低电流模式。这不是因为他们时间太多&…...

GENIVI DLT Viewer:从编译到实战连接的完整指南

1. 环境准备&#xff1a;搭建DLT Viewer开发环境 第一次接触GENIVI DLT Viewer时&#xff0c;我花了两天时间才把环境搭好。现在回想起来&#xff0c;其实只要抓住几个关键点就能少走弯路。DLT Viewer是汽车电子和嵌入式领域常用的日志分析工具&#xff0c;主要用于查看设备端…...