minio作为K8S后端存储

ops/2025/2/28 23:13:27/

docker部署minio

mkdir -p /minio/datadocker run -d \-p 9000:9000 \-p 9001:9001 \--name minio \-v /minio/data:/data \-e "MINIO_ROOT_USER=jbk" \-e "MINIO_ROOT_PASSWORD=jbjbjb123" \quay.io/minio/minio server /data --console-address ":9001"

直接安装csi-s3

https://artifacthub.io/packages/helm/k8s-csi-s3/csi-s3
helm repo add kubeblocks https://apecloud.github.io/helm-charts
helm pull kubeblocks/csi-s3
kubectl create ns csi-s3helm install -n csi-s3 csi-s3 csi-s3-0.31.4.tgz  \--set secret.accessKey="tw8iFXwkBlrUmNKLp6ei" \--set secret.secretKey="GBQW7xObmwcTDo4Yz5b2OH4u73i6sEPGBhnvxvSl" \--set secret.endpoint="http://172.16.8.104:9000" #你的minio地址
安装完成如下

在这里插入图片描述

简单测试
cat <<EOF > demon.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: s3-pvc
spec:accessModes:- ReadWriteOnceresources:requests:storage: 5GistorageClassName: csi-s3
---
apiVersion: v1
kind: Pod
metadata:name: nginx
spec:containers:- name: nginximage: nginxvolumeMounts:- mountPath: /xx/xxxname: s3-storagevolumes:- name: s3-storagepersistentVolumeClaim:claimName: s3-pvc
EOF
部署pods基本都没有什么问题,比如kafka集群,redis集群都OK ,不再过多演示

在这里插入图片描述
在这里插入图片描述

将 S3 作为 Kubernetes 的后端存储,主要依赖于 CSI(Container Storage Interface)驱动的实现。csi-s3 驱动负责将 S3 对象存储与 Kubernetes 的存储管理系统集成。以下是其实现原理的简要概述:

实现原理

  • CSI 驱动架构:

  • CSI 是 Kubernetes 的标准接口,允许不同的存储系统(如 S3)与 Kubernetes 集成。csi-s3 驱动实现了 CSI 的 API,使得 Kubernetes 能够通过标准化的方式与 S3 进行交互。
    StorageClass 和 PVC:

  • 用户首先创建一个 StorageClass,指定使用 csi-s3 驱动。然后,用户创建一个 PersistentVolumeClaim(PVC),请求特定的存储容量。Kubernetes 会根据 PVC 的请求,调用 CSI 驱动来动态创建或绑定相应的存储资源。
    卷的创建与管理:

  • 当 PVC 被创建时,csi-s3 驱动会处理卷的创建请求。它会与 S3 API 交互,创建一个新的 S3 存储桶或在现有存储桶中创建一个对象。例如,驱动可能会创建一个特定的文件夹或对象,代表 PVC 的存储。
    数据读写操作:

  • 当 Pod 需要访问存储时,csi-s3 驱动会将读写请求转换为 S3 API 调用。例如,写入数据时,驱动会将数据上传到 S3 存储桶;读取数据时,驱动会从 S3 存储桶下载数据。
    数据一致性和性能:

  • S3 是基于对象的存储,通常采用最终一致性模型。csi-s3 驱动需要处理数据一致性的问题,确保应用能够正确处理数据的读取和写入。
    对于性能,S3 的延迟相对较高,因此不适合所有类型的工作负载,尤其是需要低延迟和高 IO 性能的数据库应用。
    卷的删除与回收:

  • 当 PVC 被删除时,csi-s3 驱动会处理卷的删除请求,可能会删除相应的 S3 对象或存储桶,具体取决于 PersistentVolumeReclaimPolicy 的配置(如 Retain、Delete 等)。
    关键组件

  • CSI 适配器:

  • csi-s3 驱动实现了 CSI 适配器,处理 Kubernetes 发送的存储请求。

  • S3 API:

  • 驱动使用 AWS S3 API 或兼容 S3 的 API 与对象存储进行交互。

  • Kubernetes API:

  • 驱动与 Kubernetes API 交互,处理 PVC、PV 和 StorageClass 的生命周期管理。

网络交互

数据写入:
  • 当一个 Pod 需要将数据写入 S3 时,csi-s3 驱动会通过网络向 S3 API 发起 HTTP(S) 请求,将数据上传到指定的 S3 存储桶。这意味着数据需要经过网络传输,从 Pod 的容器到 S3 存储服务。
    数据读取:

  • 类似地,当 Pod 需要读取数据时,csi-s3 驱动会通过网络向 S3 API 发起请求,下载所需的数据。这同样需要网络连接。
    网络延迟与性能
    延迟:由于数据需要通过网络传输,读写操作的延迟通常会比直接使用本地或块存储要高。这对于需要快速响应的应用(如数据库)可能会影响性能。

  • 带宽:网络带宽也会影响数据传输的速度,尤其是在处理大量数据时。

考虑因素

- 注意事项


http://www.ppmy.cn/ops/162076.html

相关文章

DeepSeek-R1:通过强化学习激发大语言模型的推理能力

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列三DeepSeek大模型技术系列三》DeepSeek-…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.1.2典型应用场景:日志分析、实时搜索、推荐系统

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 为什么选择Elasticsearch&#xff1f;——典型应用场景深度解析1. 引言2. 日志分析&#xff1a;海量数据的实时洞察2.1 行业痛点2.2 ES解决方案关键技术实现&#xff1a; 2.…

Android之APP更新(通过接口更新)

文章目录 前言一、效果图二、实现步骤1.AndroidManifest权限申请2.activity实现3.有版本更新弹框UpdateappUtilDialog4.下载弹框DownloadAppUtils5.弹框背景图 总结 前言 对于做Android的朋友来说&#xff0c;APP更新功能再常见不过了&#xff0c;因为平台更新审核时间较长&am…

Ubuntu指令(一)

一、终端操作指令 打开终端&#xff0c;有两种便捷方式&#xff1a; 直接点击系统中的终端按钮&#xff1b;使用快捷键ctrl alt T。 关闭终端&#xff0c;同样有多种选择&#xff1a; 在终端输入exit指令&#xff1b;使用快捷键ctrl d&#xff1b;直接点击终端窗口的关闭…

计算机毕业设计 ——jspssm508Springboot 的旅游管理

&#x1f4d8; 博主小档案&#xff1a; 花花&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 花花在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于java、python等技术。近年来&#xff0c;花花更…

qt 如何做到checkbox中的状态和定义的变量同步绑定

在 Qt 中实现 QCheckBox 的状态与变量同步绑定&#xff0c;可以通过 信号槽机制 和 数据更新逻辑 实现双向同步。以下是详细步骤和示例&#xff1a; 核心思路 复选框状态变化 → 变量更新 通过 QCheckBox::stateChanged 信号触发槽函数&#xff0c;更新变量。 变量更新 → 复选…

Python网络安全脚本

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前言 睡不着&#xff0c;那就起来学习其实base64模块很早之前用过今天做爬虫的时候有个URL需要用它来编码一下 所以百度又学了一下遇到最大的问题就是python3和p…

【汽车ECU电控数据管理篇】A2L文件格式解析篇章

一、什么是A2L文件 A2L文件是汽车电子领域中用于定义 ECU&#xff08;Electronic Control Unit&#xff0c;电子控制单元&#xff09;标定和测量数据的标准文件格式。它基于 ASAP2&#xff08;Automotive Standard for Calibration and Measurement&#xff09;标准&#xff0c…