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

在CSDN学Golang云原生(Kubernetes Volume)

一,Volume 与 configMap

Kubernetes 中的 Volume 和 ConfigMap 都是 Kubernetes 中常用的资源对象。它们可以为容器提供持久化存储和配置文件等。

Volume 可以将容器内部的文件系统挂载到宿主机上,也可以将多个容器间共享一个 Volume,并且 Volume 与 Pod 的生命周期相同。

ConfigMap 则是一种用于保存应用程序配置数据的 API 对象,通过 ConfigMap 将应用程序配置信息从 Pod Spec 中分离出来,使得应用程序配置更加灵活和可维护。

在使用时,可以将 ConfigMap 挂载为 Volume,使得容器中的应用程序能够访问其中的配置信息;或者将 ConfigMap 直接注入到容器环境变量中,在应用程序启动时读取并使用这些环境变量。

Volume 主要解决了数据持久化问题,而 ConfigMap 则主要解决了应用程序配置管理问题。

二,Volume 与 secret

在 Kubernetes 中,Volume 和 Secret 都是用于为容器提供持久化存储的资源对象。它们的不同点在于 Volume 是用来存储普通数据的,而 Secret 则是专门用来存储敏感数据的。

Secret 可以用来保存密码、密钥等敏感信息,并且这些信息会被加密后保存在 etcd 中。同时,Secret 也可以被挂载到容器内部作为文件系统使用,在容器内部访问这些敏感信息。

Kubernetes 支持多种类型的 Secret 数据,如 Opaque、ServiceAccountToken 等。其中 Opaque 类型的 Secret 可以保存任意类型的键值对,例如用户名和密码等;而 ServiceAccountToken 则是由 Kubernetes 生成的一种安全令牌,用于验证 Pod 与 Kubernetes API Server 的身份。

Volume 和 Secret 都是 Kubernetes 中常用的持久化资源对象,在应用程序开发中起到了很重要的作用。

三,Volume与PersistentVolume

在 Kubernetes 中,Volume 和 PersistentVolume 都是用于为容器提供持久化存储的资源对象。它们的不同点在于 Volume 是由 Pod 直接使用的,而 PersistentVolume 则是由多个 Pod 共享使用的。

PersistentVolume 可以理解为集群中的一个存储池,由管理员进行创建和管理,并且可以被多个 Pod 所共享。同时,在创建 PersistentVolume 时可以指定许多参数,如存储类型、大小、访问模式等等。Pod 使用 PersistentVolumeClaim(PVC)来申请获取一部分 PersistentVolume 的存储空间,并且 PVC 可以与 Pod 一起声明在同一个 YAML 文件中。

当 PVC 被创建时,Kubernetes 会尝试寻找一个可用的 PersistentVolume 来满足其需求,并将这个 PV 绑定到这个 PVC 上。如果没有可用的 PV,则 Kubernetes 将自动地创建一个新的 PV 并绑定到该 PVC 上。当 PVC 不再需要使用这个 PV 时,可以通过删除该 PVC 来释放该 PV 的占用。

PersistentVolume 和 Volume 都是 Kubernetes 中常用的持久化资源对象,在应用程序开发中起到了很重要的作用。但是它们的应用场景有所不同:Volume 更适合为单独运行的 Pod 提供本地存储;而 PersistentVolume 更适合为多个 Pod 提供共享、稳定和长期可用的存储。

四,部署cephfs分布式存储文件系统

在 Kubernetes 中部署 CephFS 分布式存储文件系统需要以下步骤:

  1. 在 Ceph 集群中创建一个 FS 文件系统,使用命令 ceph fs new
  2. 在 Kubernetes 集群中创建一个 Secret 对象,用于存储连接到 Ceph 集群所需的密钥和证书。可以使用 ceph auth get-key client.admin 命令获取这些信息。
  3. 创建一个 ConfigMap 对象,并将 ceph.conf 文件的内容添加到其中。该文件应该包含有关 Ceph 集群的配置信息。
  4. 创建一个 PersistentVolumeClaim(PVC)对象来声明需要访问 CephFS 存储的 Pod。例如:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: cephfs-pvc
spec:accessModes:- ReadWriteManyresources:requests:storage: 10GistorageClassName: cephfs-storage-class
  1. 创建一个 Deployment 或 StatefulSet 对象,并将上一步中创建的 PVC 和 ConfigMap 引用进来。示例 YAML 文件如下:
apiVersion: apps/v1beta2
kind: Deployment
metadata:name: my-deployment
spec:replicas: 1template:metadata:labels:app: my-appspec:containers:- name: my-containerimagePullPolicy: IfNotPresentimage: nginxvolumeMounts:- mountPath: /var/www/html/name: cephfs-volume-mount  volumes:- name: cephfs-volume-mountpersistentVolumeClaim:claimName: cephfs-pvc- name: ceph-configmapconfigMap:name: ceph-configmap
  1. 部署完成后,可以通过访问 Pod 中的 /var/www/html/ 目录来测试 CephFS 存储是否正常工作。在此之前,需要先在 Ceph 集群中创建一个目录,并将其挂载到该目录。

这就是在 Kubernetes 中部署 CephFS 分布式存储文件系统的步骤。

五,PersistentVolume静态制备

在 Kubernetes 中,可以使用静态 PersistentVolume(PV)制备的方式来创建 PV。下面是一个简单的示例:

  1. 创建一个 PV 文件,例如 pv.yaml,定义存储资源、访问模式和其他属性。示例文件如下:
apiVersion: v1
kind: PersistentVolume
metadata:name: my-pv
spec:capacity:storage: 10GiaccessModes:- ReadWriteOncenfs:path: /exports/my-dataserver: nfs.example.com
  1. 执行以下命令创建 PV:
kubectl create -f pv.yaml
  1. 确认 PV 是否已经成功创建:
kubectl get pv
  1. 创建 PVC 文件,例如 pvc.yaml,用于声明需要使用的存储资源和访问模式。示例文件如下:
apiVersion: v1
kind: PersistentVolumeClaim 
metadata:name: my-pvc 
spec:accessModes:- ReadWriteOnce resources:requests:storage: 5Gi 
  1. 执行以下命令创建 PVC:
kubectl create -f pvc.yaml
  1. 在 Pod 配置文件中引用上一步中创建的 PVC。示例 YAML 文件如下:
apiVersion: v1 
kind: Pod 
metadata:name: my-pod 
spec:containers:- name: my-container imagePullPolicy: IfNotPresent image: nginx    volumeMounts:- mountPath: "/var/www/html"name : "my-volume"   volumes :- name: "my-volume"persistentVolumeClaim:claimName: "my-pvc"
  1. 部署 Pod 后,可以访问 /var/www/html 目录来测试是否已经成功挂载 PV。

这就是使用静态 PersistentVolume 制备的方式在 Kubernetes 中创建 PV 的步骤。

六,StorageClass动态制备

在 Kubernetes 中,可以使用动态 StorageClass 制备的方式来创建 PV。下面是一个简单的示例:

  1. 创建一个存储类定义文件 storage-class.yaml,其中指定了如何创建 PersistentVolume 和其他属性。示例文件如下:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: my-storage-class
provisioner: kubernetes.io/aws-ebs # 存储提供者名称
parameters:type: gp2
reclaimPolicy: Retain # 删除 PVC 时保留 PV
allowVolumeExpansion: true # 允许扩容 PV 容量
  1. 执行以下命令创建 StorageClass:
kubectl create -f storage-class.yaml
  1. 确认 StorageClass 是否已经成功创建:
kubectl get sc
  1. 创建 PVC 文件,例如 pvc.yaml,用于声明需要使用的存储资源和访问模式,并将上一步中创建的 StorageClass 指定为存储类。示例文件如下:
apiVersion: v1 
kind: PersistentVolumeClaim 
metadata:name: my-pvc 
spec:accessModes:- ReadWriteOnce resources:requests:storage: 5Gi storageClassName: my-storage-class # 指定存储类名称
  1. 执行以下命令创建 PVC:
kubectl create -f pvc.yaml
  1. 在 Pod 配置文件中引用上一步中创建的 PVC。示例 YAML 文件如下:
apiVersion: v1 
kind: Pod 
metadata:name: my-pod 
spec:containers:- name: my-container imagePullPolicy: IfNotPresent image: nginx    volumeMounts:- mountPath: "/var/www/html"name : "my-volume"   volumes :- name: "my-volume"persistentVolumeClaim:claimName: "my-pvc"
  1. 部署 Pod 后,可以访问 /var/www/html 目录来测试是否已经成功挂载 PV。

这就是使用动态 StorageClass 制备的方式在 Kubernetes 中创建 PV 的步骤。

七,PersistentVolumeClaim磁盘申领

在 Kubernetes 中,可以使用 PersistentVolumeClaim(PVC)来申领存储资源。下面是一个简单的示例:

  1. 创建一个 PVC 文件 pvc.yaml,用于声明需要使用的存储资源和访问模式。示例文件如下:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: my-pvc
spec:accessModes:- ReadWriteOnce   # 访问模式为读写一次resources:requests:storage: 5Gi   # 申请的磁盘空间大小为5GB
  1. 执行以下命令创建 PVC:
kubectl create -f pvc.yaml
  1. 确认 PVC 是否已经成功创建:
kubectl get pvc
  1. 在 Pod 配置文件中引用上一步中创建的 PVC。示例 YAML 文件如下:
apiVersion: v1 
kind: Pod 
metadata:name: my-pod 
spec:containers:- name: my-container imagePullPolicy: IfNotPresent image: nginx    volumeMounts:- mountPath: "/var/www/html"name : "my-volume"   volumes :- name: "my-volume"persistentVolumeClaim:claimName: "my-pvc"
  1. 部署 Pod 后,可以访问 /var/www/html 目录来测试是否已经成功挂载 PV。

这就是在 Kubernetes 中使用 PVC 进行磁盘申领的步骤。

相关文章:

在CSDN学Golang云原生(Kubernetes Volume)

一,Volume 与 configMap Kubernetes 中的 Volume 和 ConfigMap 都是 Kubernetes 中常用的资源对象。它们可以为容器提供持久化存储和配置文件等。 Volume 可以将容器内部的文件系统挂载到宿主机上,也可以将多个容器间共享一个 Volume,并且 …...

第十五章 友元 异常和其他

RTTI RTTI是什么 RTTI是运行阶段类型识别,通过运行时类型识别,程序能够使用基类的指针或者引用来检查这些指针或者引用所指向的对象的实际派生类型。 RTTI的三个元素 dynamic_cast运算符 dynamic_cast概念: dynamic_cast运算符能够将基…...

制作DBC文件

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ DBC文件是CAN通讯的密码本,Matlab的SimuLink中常用DBC作为CAN通讯的解析桥梁 制作DBC文件,内容是转速、位置&…...

【1.1】Java微服务:初识微服务

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 微服务 ✨特色专栏: 知识分享 &#x…...

数据结构--串、数组、广义表

这里写目录标题 串定义案例引用串的类型定义以及存储结构抽象类型定义存储结构(顺序表较为常用)顺序存储结构链式存储结构 串的模式匹配算法(查找主串中是否有某个字串)BF算法KMP算法设计思想对字串的回溯进行了优化代码对next【j】进行优化 数组类型一维…...

白银挑战——链表高频面试算法题

算法通关村第一关–链表白银挑战笔记 开始时间:2023年7月18日14:39:36 链表 Java中定义一个链表 class ListNode {public int val;public ListNode next;ListNode(int x) {val x;next null;}}1、四种方法解决两个链表第一个公共子节点 解释一下什么是公共节点 如…...

海外腾讯云账号:腾讯云高性能计算平台 THPC

高性能计算平台(TencentCloud High Performance Computing,THPC)是一款腾讯云自研的高性能计算资源管理服务,集成腾讯云上的计算、存储、网络等产品资源,并整合 HPC 专用作业管理调度、集群管理等软件,向用…...

eclipse 最新版没有navigator视图如何解决

使用project exploere视图可以显示类似navigator视图 1.显示project exploere视图 window---->show view --->project exploere 2.project exploere视图转换为类似navigator视图 第一步:点击视图右上角三个点或者倒三角,点击fiters and custom…...

Zynq-Linux移植学习笔记之62- PL挂载复旦微flash

1、背景介绍 现在为了全国产化需要,之前所有的进口flash全部要换成国产flash 2、复旦微flash型号 其中EFM25QU256和EFM25QL256对标winbond的w25q256 nor flash 3、FPGA设置 复旦微flash只支持单线模式,当使用PL侧的IP核访问时,需要设置模式…...

SpringBoot复习:(2)Tomcat容器是怎么启动的?

SpringApplication的run方法包含如下代码: 其中调用的refreshContext代码如下: 其中调用的refresh方法片段如下: 其中调用的refresh方法代码如下: 其中调用的super.refresh方法代码如下: public void refresh() th…...

1 MobileHomeTopicApplication

目录 1 OrderApplication 1.1 引用文件 1.2 #region 字段 1.3 #region 属性 OrderApplication 引用文件using System; using...

mpi4py包安装报错

报错情况 #include <mpi.h>^~~~~~~compilation terminated.failure.removing: _configtest.c _configtest.oerror: Cannot compile MPI programs. Check your configuration!!![end of output]note: This error originates from a subprocess, and is likely not a probl…...

C语言进阶-1

1、数据类型 1.1、基本数据类型 数据类型分2类&#xff1a;基本数据类型复合类型 基本类型&#xff1a;char short int long float double 复合类型&#xff1a;数组 结构体 共用体 类&#xff08;C语言没有类&#xff0c;C有&#xff09; 1.1.1、内存占用与sizeof运算符 数据…...

Python如何正确解决爬虫过程中的Cookie失效问题?

前言 本文是该专栏的第54篇,后面会持续分享python爬虫干货知识,记得关注。 在python爬虫项目中,Cookie是一种用于在客户端和服务器之间传递信息的技术。在爬取某些网站的时候,可能会需要登录才能正常获取到数据,这个时候就需要用到cookie来解决。通常情况下,需要将cooki…...

维护自己电脑浅析

作为一名计算机用户&#xff0c;维护自己的电脑是非常重要的&#xff0c;这可以保证电脑的正常运行、数据的安全、提高电脑的性能等。在本文中&#xff0c;我将分享一些我个人维护电脑的经验和技巧。 定期清理电脑 电脑在使用过程中会产生大量的临时文件、垃圾文件、缓存文件等…...

svo2论文

论文题目 SVO: Semidirect Visual Odometry for Monocular and Multicamera Systems 内容 1&#xff09; 具有最小特征漂移的长特征轨迹&#xff1b; 2&#xff09; 图像平面中的大量均匀分布的特征&#xff1b; 3&#xff09;新特征与旧地标的可靠关联&#xff08;即环路闭…...

【GoLang】MAC安装Go语言环境

小试牛刀 首先安装VScode软件 或者pycharmmac安装brew软件 brew install go 报了一个错误 不提供这个支持 重新brew install go 之后又重新brew reinstall go 使用go version 可以看到go 的版本 使用go env 可以看到go安装后的配置 配置一个环境变量 vim ~/.zshrc, # bre…...

epoll服务器创建

驱动 #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/io.h> #include <linux/device.h> #include <linux/uaccess.h> #include <linux/poll.h> unsigned int major; char kbuf[128]{0}…...

jdk11环境 提示“因为 accessExternalDTD 属性设置的限制导致不允许 ‘http‘ 访问“bug

在运行mybatis源码的时候&#xff0c;提示一下错误&#xff1a; Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating docum…...

Android Studio 的版本控制Git

Android Studio 的版本控制Git。 Git 是最流行的版本控制工具&#xff0c;本文介绍其在安卓开发环境Android Studio下的使用。 本文参考链接是&#xff1a;https://learntodroid.com/how-to-use-git-and-github-in-android-studio/ 一&#xff1a;Android Studio 中设置Git …...

一个 SpringBoot 项目能处理多少请求

首先&#xff0c;这个问题有坑&#xff0c;因为 spring boot 不处理请求&#xff0c;只是把现有的开源组件打包后进行了版本适配、预定义了一些开源组件的配置通过代码的方式进行自动装配进行简化开发。这是 spring boot 的价值。 使用 spring boot 进行开发相对于之前写配置文…...

Python中的r字符串前缀及其用法详解

Python中的r字符串前缀及其用法详解 1. 介绍 1.1 什么是r字符串前缀 在Python中&#xff0c;r字符串前缀是一种特殊的字符串前缀&#xff0c;用于表示原始字符串。当一个字符串以r前缀开始时&#xff0c;它将被视为原始字符串&#xff0c;其中的转义字符将被忽略。 1.2 r字…...

LabVIEW实现三相异步电机磁通模型

LabVIEW实现三相异步电机磁通模型 三相异步电动机由于经济和出色的机电坚固性而广泛用于工业化应用。这台机器的设计和驱动非常简单&#xff0c;但在控制扭矩和速度方面&#xff0c;它隐藏了相当大的功能复杂性。通过数学建模&#xff0c;可以理解机器动力学。 基于微分方程的…...

读书会-《影响力》

《影响力》这本书的作者罗伯特西奥迪尼时全球知名说服力研究权威。因其在影响力研究领域的开创性&#xff0c;人们将其称为“影响力研究领域的本杰明富兰克林”。这本书从人们的心理状态&#xff0c;进行了很多实验研究&#xff0c;总结出了7大规律。如果从事营销&#xff0c;需…...

141. 环形链表

简单 1.9K 相关企业 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链…...

学习笔记|大模型优质Prompt开发与应用课(二)|第一节:大模型应用密码—Prompt的一千种打开方式

文章目录 第一节:大模型应用密码—Prompt的一千种打开方式01你可能听过一个小故事1910华盛顿纺织厂罢工事件 02 小问题:哪些场景会被提效类目一︰减少重复性工作的成本&#xff08;降本)例如∶做策划初稿、写JD、润色文案prompt生成结果prompt生成结果prompt生成结果promptprom…...

QT chart进行画图

说明 QT Chart 是一个用于在 Qt 应用程序中绘制图表的开源库。它提供了多种类型的图表,如线图、柱状图、饼图等,可以用于可视化数据和统计信息。QT Chart 是一个基于 Qt 绘图框架的扩展,可以轻松集成到现有的 Qt 应用程序中。 使用 QT Chart,你可以通过简单的代码来创建和…...

Web3将自己写在合约中的代币添加到MetaMask中管理

上文 Web3带着大家根据ERC-20文档编写自己的第一个代币solidity智能合约 带着大家在智能合约中创建了一个自己的代币系统 我们可以在MetaMask中去导入 ganache环境下模拟出来的第一和第二个账号 我们这里 可以看到他们的 ETH 但看不到自己的代币符号 没关系 我们点击这下面的…...

【微信小程序】显示自带的弹窗,包括加载中,成功,错误,提示,警告

在微信小程序中&#xff0c;可以使用以下方法来显示自带的弹窗&#xff1a; 显示加载中的弹窗&#xff1a; wx.showLoading({title: 加载中,mask: true });显示成功的弹窗&#xff1a; wx.showToast({title: 成功,icon: success,duration: 2000 });显示错误的弹窗&#xff1…...

vue-element-plus-admin框架的tag上下文切换bug

问题 首先贴上该框架的链接&#xff1a;https://github.com/kailong321200875/vue-element-plus-admin 在对路由进行部分修改后&#xff0c;网站多次切换tag时&#xff0c;控制台会出现报错&#xff1a;Cannot read properties of undefined (reading offsetLeft)。 我在框架…...

安庆 做网站/华为手机网络营销策划方案

日前&#xff0c;百度与全球领先的生物制药公司法国赛诺菲签订协议&#xff0c;赛诺菲将利用百度 LinearDesign 平台&#xff0c;优化 mRNA 疫苗和药物的设计研发&#xff0c;用于新冠肺炎等人类疾病的治疗与预防。 LinearDesign 是百度自主研发的 mRNA 序列设计优化算法&#…...

网站卖给别人后做违法信息/郑州黑帽seo培训

Mark Word 在32位 JVM 中&#xff1a; Mark Word 在64位 JVM 中&#xff1a; 锁标志位&#xff08;lock&#xff09; 区分锁状态&#xff0c;11时表示对象待GC回收状态, 只有最后2位锁标识(11)有效。 biased_lock 是否偏向锁&#xff0c;由于无锁和偏向锁的锁标识都是 01&am…...

临海建设局网站导航/类似互推商盟的推广平台

导读&#xff1a; 对于程序员来说&#xff0c;每个人拥有一两个服务器进行学习是很有必要的&#xff0c;弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器&#xff0c;可帮助您打造可靠、安全、灵活、高效的应用环境&#xff0c;确保服务持久稳定…...

商务网站建设的一般流程是什么/什么是软文

临近2018年底&#xff0c;我们阿里云上的一台ECS服务器竟然被阿里云短信提示有挖矿程序&#xff0c;多次收到阿里云的短信提醒说什么服务器被植入挖矿程序&#xff0c;造成系统资源大量消耗&#xff1b;而且还收到CPU使用率达到百分之90的安全提醒&#xff0c;我们的服务器上并…...

优美网站源码/哈尔滨百度推广联系人

目录 一、内存布局 二、ptmalloc内存管理器 1. 设计假设 2. 主分配区和非主分配区 3. chunk 内存块的基本组织单元 4. 内存分配malloc流程 5. 内存释放free流程 6. mallopt 参数调优 7. 使用注意事项 一、内存布局 了解ptmalloc内存管理器&#xff0c;就必须得先了解操…...

石家庄便宜做网站/厦门seo顾问屈兴东

IntelliJ 注解Slf4j后找不到log问题解决参考文章&#xff1a; &#xff08;1&#xff09;IntelliJ 注解Slf4j后找不到log问题解决 &#xff08;2&#xff09;https://www.cnblogs.com/share-record/p/11746349.html 备忘一下。...