k8s教程(Volume篇)-总结

article/2025/6/21 9:12:02

文章目录

  • 01 引言
  • 02 内容整理
    • 2.1 概念
    • 2.2 PV
    • 2.3 PVC
    • 2.4 StorageClass
    • 2.5 CSI
  • 03 文末

01 引言

至此,volume的相关知识已经讲解完了,下面是相关文章的详情总结:

  • 《k8s教程(Volume篇)-k8s存储机制概述》
  • 《k8s教程(Volume篇)-PV详解》
  • 《k8s教程(Volume篇)-PVC详解》
  • 《k8s教程(Volume篇)-StorageClass详解》
  • 《k8s教程(Volume篇)-CSI存储机制详解》

02 内容整理

先贴上整理的脑图:
在这里插入图片描述

2.1 概念

详情参考: 《k8s教程(Volume篇)-k8s存储机制概述》

容器内部存储的生命周期是短暂的,会随着容器环境的销毁而销毁,具有不稳定性。如果多个容器希望共享同一份存储,则仅仅依赖容器本身是很难实现的。在Kubernetes系统中,将对容器应用所需的存储资源抽象为存储卷 (Volume)概念 来解决这些问题。我们可以将Volume的内容理解为目录或文件

Kubernetes目前支持的Volume类型包括Kubernetes内部资源对象类型开源共享存储类型存储厂商提供的硬件存储设备公有云提供的存储等。

将Kubernetes特定类型的资源对象映射为目录或文件,包括以下类型的资源对象:

类型描述
ConfigMap应用配置
Secret加密数据
DownwardAPIPod或Container的元数据信息
ServiceAccountTokenService Account中的token数据
Projected Volume一种特殊的存储卷类型,用于将一个或多个上述资源对象一次性挂载到容器内的同一个目录下

Kubernetes管理的宿主机本地存储类型如下

类型描述
EmptyDir临时存储
HostPath宿主机目录

持久化存储(PV))和网络共享存储类型如下

类型描述
CephFS一种开源共享存储系统
Cinder一种开源共享存储系统
CSI容器存储接口(由存储提供商提供驱动程序和存储管理程序)
FC(Fibre Channel)光纤存储设备
FlexVolume一种基于插件式驱动的存储
Flocker一种开源共享存储系统
Glusterfs一种开源共享存储系统
iSCSIiSCSI存储设备
Local本地持久化存储
NFS网络文件系统
PersistentVolumeClaim简称PVC,持久化存储的申请空间
Portworx VolumesPortworx提供的存储服务
Quobyte VolumesQuobyte提供的存储服务
RBD(Ceph Block Device)Ceph块存储

存储厂商提供的存储卷类型如下

类型描述
ScalelO VolumesDellEMC的存储设备
StorageOSStorageOS提供的存储服务
VsphereVolumeVMWare提供的存储系统

公有云提供的存储卷类型如下

类型描述
AWSElasticBlockStoreAWS公有云提供的Elastic Block Store
AzureDiskAzure公有云提供的Disk
AzureFileAzure公有云提供的File
GCEPersistentDiskGCE公有云提供的Persistent Disk

2.2 PV

详情参考: 《k8s教程(Volume篇)-PV详解》

PV作为对存储资源的定义,主要涉及存储能力、访问模式、存储类型、回收策略、后端存储类型等关键信息的设置。

PV示例:5GiB存储空间,存储卷模式为 Filesystem,访问模式为ReadWriteOnce,存储类型为slow(要求在系统中己存在名称为“slow”的StorageClass),回收策略为Recycle,并且后端存储类型为nfs (设置了 NFS ServerIP地址和路径),同时设置了挂载选项 (mountOptions)

apiVersion: v1
kind: PersistentVolume
metadata:name: pv1
spec:capacity:Storage: 5GivolumeMode: Filesystem accessModes:- ReadwriteOncepersistentVolumeReclaimPolicy: RecyclestorageClassName: slow mountoptions:- hard- nfsvers=4.1nfs:path: /tmpserver: 172.17.0.2

2.3 PVC

详情参考: 《k8s教程(Volume篇)-PVC详解》

PVC作为用户对存储资源的需求申请,主要涉及存储空间请求访问模式PV选择条件存储类别等信息的设置。

示例:申请8GiB存储空间,访问模式为ReadWriteOnce,PV选择条件为包含release=stable标签并且包含条件为environment In[dev]的标签,存储类别为“slow”(要求在系统中已存在名为slow的StorageClass)

apiVersion: v1
kind: PersistentVolumeclaim 
metadata:name: myclaim 
spec:accessModes:- ReadWriteOncevolumeMode: Filesystemresources:requests:storage: 8GistorageClassName: slow selector:matchLabels:release: "stable"matchExpressions:- {key: environment, operator: In, values: [dev]}

2.4 StorageClass

详情参考:《k8s教程(Volume篇)-StorageClass详解》

StorageClass作为对存储资源的抽象定义,对用户设置的PVC申请屏蔽后端存储的细节,一方面减少了用户对于存储资源细节的关注,另一方面减轻了管理员手工管理PV的工作,由系统自动完成PV的创建和绑定,实现动态的资源供应。基于StorageClass的动态资源供应模式将逐步成为云平台的标准存储管理模式。

示例:定义了一个StorageClass,名称为standardprovisioneraws-ebstypegp2,回收策略为Retain

apiVersion: storage.k8s.io/v1 
kind: StorageClass 
metadata:name: standard
provisioner: kubernetes.io/aws-ebs 
parameters:type: gp2
reclaimPolicy: Retain
allowVolumeExpansion: true 
mountOptions:- debug
volumeBindingMode: Immediate

2.5 CSI

详情参考: 《k8s教程(Volume篇)-CSI存储机制详解》

Kubernetes从1.9版本开始引入容器存储接口 Container Storage Interface (CSI)机制,用于在Kubernetes和外部存储系统之间建立一套标准的存储管理接口,通过该接口为容器提供存储服务。

CSI的核心组件和部署架构如下:
在这里插入图片描述

CSI Controller:主要功能是 提供存储服务视角对存储资源和存储卷进行管理和操作。在Kubernetes中建议将其部署为单实例Pod,可以使用StatefulSetDeployment控制器进行部署,设置副本数量为1,保证一种存储插件只运行一个控制器实例。

CSI Node:主要功能是对主机(Node )上的Volume进行管理和操作在 Kubernetes中建议将其部署为DaemonSet,在需要提供存储资源的各个Node上都运行一个Pod

03 文末

本文主要是对k8s的volume做一个简单的笔记整理,便于后续的回顾,谢谢大家的阅读,本文完!


http://chatgpt.dhexx.cn/article/cXvmgrBh.shtml

相关文章

【K8S教程分享】Kubernetes K8S高级视频教程

Kubernetes K8S高级视频教程,目前的云计算(PaaS),事实上已经以K8S为标准建立平台,各大开源项目也都依据K8S对接进行开发或二次开发,所以K8S是目前云计算领域的必备技能,当能结合openstackk8s双平台者的运维、开发、使用者&#xf…

k8s教程(基础篇)-安装与配置概述

文章目录 01 系统要求02 安装概述03 私有镜像库配置与升级3.1 私有镜像库配置3.2 升级 04 CRI(容器运行时接口)详解 4.1 CRI 概述 4.2 CRI 的主要组件 4.3 Pod 和容器的生命周期管理 4.4 面向容器级别的设计思路 4.5 尝试使用新的 Docker-CRI 来创建容器…

K8S入门教程

目录 1.Kubernetes概述 1.1 Kubernetes介绍 1.2 基本架构与常用术语 2.Kubernetes集群 2.1 环境准备与规划 2.2 Master安装 2.3 Node1安装 2.4 Node2安装 2.5 健康检查与示例测试 1.Kubernetes概述 1.1 Kubernetes介绍 1.1.1 Kubernetes是什么及作用 Kubernetes(K8S)是Google在…

k8s教程(基础篇)-入门及案例

文章目录 1. 了解 Kubernetes 1.1 Kubernetes是什么 1.2 Kubernetes的基本知识 1.2.1 Service 1.2.2 Pod 2. 为什么要用 Kubernetes 3. 从一个简单的例子开始 3.1 启动 MySQL 服务 3.1.1 Deployment定义文件 3.1.2 service定义文件 3.2 启动 Tomcat应用 3.2.1 Deployment定义文…

k8s搭建(超详细,保姆级教程)

1、简介 这里就不赘述,想要了解的朋友直接去这里深入了解什么是K8S。 2、环境要求 2台以上机器,操作系统 CentOS7.7-64位系统硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多集群中所有机器之间网络互通可以…

k8s教程----零基础快速入门

k8s详解教程----零基础快速入门 前言: Kubernetes(k8s)作为云原生的核心平台,吸引了越来越多的运维、开发、测试以及其他技术员去了解学习。随着行业越来越内卷,k8s已经被广泛使用,作为一名运维人员&#…

K8S使用教程(详细)

Kubernetes详细教程 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点…

零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s

一、前言 作为一个工作十余年,拥有比较丰富的计算机网络运维、主机运维、云计算平台运维、自动化运维开发经验的老鸟,我来说说我当初刚接触Kubernetes时的一些感受以及学习技巧。 刚开始学习k8s时,我觉得挺难的,一头雾水&#x…

python input函数换行_python input函数换行_python_input函数

Python raw_input() 函数 Python内置函数 python raw_input()用来获取控制台的输入。 raw_input()将所有输入作为字符串看待,返回字符串类型。注意:input()和 raw_input()这两个函 Python input和print函数 - 箬笠蓑衣 258x256 - 5KB - PNG python row函数_row函数_python row_…

Python基础之input函数和eval函数

Python基础之&#xff08;二&#xff09; 一、 input()函数-数据输入 input()函数的功能&#xff1a;显示用户输入的值 input()函数可以包含一些提示性文字 通过使用input()函数&#xff0c;可以使用户主动输入的内容变成程序中的字符串变量的值 <字符串变量> input(&l…

函数input()讲解

目录 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 2.input与提示语 3.input与print 例子 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 input在pyth…

Python input函数

input()函数 import timeprint(亲爱的同学&#xff1a;) time.sleep(1)print(我们愉快地通知您&#xff0c;您已获准在霍格沃茨魔法学校就读。) time.sleep(2)print(随信附上所需书籍及装备一览。) time.sleep(1)print(学期定于九月一日开始。) time.sleep(1)print(鉴于您对魔…

python中input函数最简单详细的了解

一、input&#xff08;&#xff09;函数 有了 输入 魔法&#xff0c;程序就有了对话的功能。计算机根据你的回答进行对应的处理&#xff0c;好像能听懂你的话一样。 你通过 Python 代码向计算机提供指令&#xff0c;计算机执行指令&#xff0c;然后通过 input() 函数把问题显…

input函数和int函数的使用

第一&#xff0c;input函数接受一个标准输入数据&#xff0c;返回str类型 第二&#xff0c;int函数可以把str强制转换为整形 第三&#xff0c;int(input()) ps&#xff1a;最近搞深度学习的视频&#xff0c;但是依然需要实操

python中input函数的使用

input() 函数接受一个标准输入数据&#xff0c;返回为 string 类型。 input() # 单个输入使用input ninput() print(n) print(type(n))ninput("输入&#xff1a;") print(n) print(type(n))ninput() print(n) print(type(n))input().split() split()方法通过指定分…

python编程 input输入函数

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.输入与输出 1.input输入函数 2注意点① 3注意点② 二.input输入函…

Python中的input()函数

选择题 请问在Python 3.x中&#xff0c;从键盘输入数字2之后&#xff0c;下列代码的输出结果是&#xff1f; a input("请输入年龄&#xff1a;") print(a 1) A a 1 B 2 1 C 3 D 抛出异常 问题解析 1.在Python中&#xff0c;使用内置函数input()可以接收用户的键盘…

Python基础 input函数

输入函数input&#xff08;&#xff09; 作用&#xff1a;接收来自用户的输入 返回值类型&#xff1a;输入值的类型为str 值的存储&#xff1a;使用 对输入的值进行存储 input函数的基本使用 present input (你想要什么礼物呢&#xff1f;) present --> 变量 --> …

php中input函数,input函数的用法是什么?

input函数的用法是什么? input函数的用法是: 1.input()函数 在Python3中,input()函数接受一个标准输入数据,返回为string类型。 注意:在Python3中,raw_input()和input()进行了整合,去除了raw_input(),仅保留了input()函数,其接收任意任性输入。将所有输入默认为字符串处…

【Python】input()函数用法小结

一&#xff1a;input&#xff08;&#xff09;函数的输入机制 我们编写的大部分程序&#xff0c;都需要读取输入并对其进行处理&#xff0c;而基本的输入操作是从键盘键入数据。Python从键盘键入数据&#xff0c;大多使用其内置的input&#xff08;&#xff09;函数。但是&…