当前位置: 首页 > 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…...

郑州大学算法设计与分析实验2

判断题 1 #include<bits/stdc.h> using namespace std;const int N 50; int f[N], n;int main() { // freopen("1.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;f[1] 1; f[2] 1;for(int i 3; i &l…...

【CMake】1. VSCode 开发环境安装与运行

CMake 示例工程代码 https://github.com/LABELNET/cmake-simple 插件 使用 VSCode 开发C项目&#xff0c;安装 CMake 插件 CMakeCMake ToolsCMake Language Support &#xff08;建议&#xff0c;语法提示) 1. 配置 CMake Language Support , Windows 配置 donet 环境 这…...

使用vue3+<script setup>+element-plus中el-table前端切片完成分页效果

<template><div><el-table :data"visibleData" :row-key"row > row.id"><el-table-column prop"name" label"姓名"></el-table-column><el-table-column prop"age" label"年龄&qu…...

vue 中 computed 和 watch 的区别

在Vue中&#xff0c;computed和watch都是用于监听数据的变化&#xff0c;并且根据变化做出相应的反应。 computed是一个计算属性&#xff0c;它会根据依赖的数据的变化自动计算得出一个新的值&#xff0c;并且具有缓存的特性。当依赖的数据发生变化时&#xff0c;computed属性…...

gephi——graphviz插件设置

gephi_graphviz插件设置 以下是我总结出来的一点经验 1. 安装graphviz软件&#xff0c;请见作者其他博客 2. 安装gephi 插件&#xff0c;并激活 3. 运行graphviz布局&#xff0c;会遇到找不到dot问题 问题描述&#xff1a;Graphviz process error X There was an error launc…...

wireshark抓包分析HTTP协议,HTTP协议执行流程,

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取「HTTP协议」的数据包&#…...

Linux第13步_安装“vim编辑器”及应用介绍

学习“磁盘重新分区”后&#xff0c;嵌入式Linux系统环境搭建进入安装“vim编辑器”这个环节。vim编辑器可以用来修改文件&#xff0c;在后期使用中&#xff0c;会经常用到。 1、安装“vim编辑器” 输入“sudo apt-get install vim回车”&#xff0c;就可以执行安装“vim编辑…...

Yapi安装配置(CentOs)

环境要求 nodejs&#xff08;7.6) mongodb&#xff08;2.6&#xff09; git 准备工作 清除yum命令缓存 sudo yum clean all卸载低版本nodejs yum remove nodejs npm -y安装nodejs,获取资源,安装高版本nodejs curl -sL https://rpm.nodesource.com/setup_8.x | bash - #安装 s…...

HCIA-Datacom题库(自己整理分类的)_08_FTP协议【8道题】

一、单选 1.在使用FTP协议升级路由器软件时&#xff0c;传输模式应该选用___ 二进制模式 字节模式 文字模式 流字节模式 解析&#xff1a;二进制模式&#xff1a;在数据连接中传输&#xff0c;不对数据进行任何处理&#xff0c;不需要转换或格式化就可以传输字符。 2.以…...

【开源GPT项目 - 在问】让知识无界,智能触手可及

Chatanywhere: chatAnywhere 在问 | 让知识无界&#xff0c;智能触手可及 项目简介 这是一个免费的在线聊天工具&#xff0c;旨在让用户更方便地享受科技带来的便利。用户可以使用我们的工具来获取答案、寻求建议、进行翻译和计算等等。这是由一位个人开发者创建的&#xff…...

自动做网站的ai/黄页网站推广效果

vuejs指令csdn长时间点击 (vue-long-click) Vue long click (longpress) directive. Vue长按(longpress)指令。 View Demo 查看演示 Download Source 下载源 安装 (Install) npm install vue-long-click --save import { longClickDirective } from vue-long-clickconst longC…...

用github做静态网站/全国各大新闻网站投稿

工作上提高效率的方法有哪些呢&#xff1f;说道工作效率提高&#xff0c;很多人立刻想到时间管理法&#xff0c;比如番茄工作法、四象限工作法等&#xff0c;虽然方法有了&#xff0c;如果没有好用的效率办公软件&#xff0c;那些好用的方法也难以实施。这篇文章小编将分享能够…...

阿里巴巴网站威海哪里做/湖南网站设计外包哪家好

记录链接。http://hi.baidu.com/xx375转载于:https://blog.51cto.com/xzv587/1361039...

佛山企业网站建设电话/国际机票搜索量大涨

https://blog.csdn.net/qq_34337272/article/details/81072874 http://c.biancheng.net/view/4603.html https://blog.csdn.net/qq_33764491/article/details/81083644 mysql默认可重复读事物隔离级别行级锁足够用了&#xff0c;但是为了效率&#xff0c;经常降低隔离级别为r…...

注册个网站怎么注册/最新新闻热点事件2024

这里主要是理解基类中声明为纯虚函数、虚函数、和非虚函数的区别&#xff0c;主要是为了告诉派生类什么信息呢&#xff1f;...

给网站做/新冠疫情最新消息今天

举个简单例子说明class A{ private int age;private String name;}int是基本数据类型&#xff0c;当你new A()得时候&#xff0c;age自动赋值为0&#xff1b;但是对于引用类型name来说&#xff0c;此时只会分配一个引用&#xff0c;指向null, 当你想使用name得时候不能直接引…...