(k8s)kubernetes 挂载 minio csi 的方式(pod挂载pvc存在csi驱动问题,挂载不上)

devtools/2025/1/15 11:19:02/

一、安装Minio(Minio分布式集群搭建部署_minio集群最少几台-CSDN博客)

生成accessKeyID和secretAccessKey:

二、安装csi-s3插件(在k8s集群上)

首先我们把插件的yaml文件都下载下来,为了保证版本测试的一致性,我们下载v1.2.0-rc.2这个Tag

$ wget https://github.com/ctrox/csi-s3/archive/refs/tags/csi-s3-1.2.0-rc.2.tar.gz

解压,会得到目录csi-s3-1.2.0-rc.2

tar zxvf csi-s3-1.2.0-rc.2.tar.gz
[root@k8s-master01 ~]# cd csi-s3-1.2.0-rc.2/deploy/kubernetes/
[root@k8s-master01 kubernetes]# ls
attacher.yaml  csi-s3.yaml  examples  provisioner.yaml

 修改csi-s3.yaml中的quay.io/k8scsi/csi-node-driver-registrar:v1.2.0为quay.io/k8scsi/csi-node-driver-registrar:v2.1.0

[root@k8s-master01 kubernetes]# cat csi-s3.yaml | grep imageimage: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0image: ctrox/csi-s3:v1.2.0-rc.2imagePullPolicy: "Always"

 修改后:

[root@k8s-master01 kubernetes]# cat csi-s3.yaml | grep imageimage: quay.io/k8scsi/csi-node-driver-registrar:v2.1.0image: ctrox/csi-s3:v1.2.0-rc.2imagePullPolicy: "Always"

安装插件: 

[root@k8s-master01 kubernetes]# kubectl create -f provisioner.yaml
[root@k8s-master01 kubernetes]# kubectl create -f attacher.yaml
[root@k8s-master01 kubernetes]# kubectl create -f csi-s3.yaml

查看csi容器已经处地Running状态 

[root@k8s-master01 ~]# kubectl get pod -n kube-system -o wide | grep csi
csi-attacher-s3-0                          1/1     Running   1 (86m ago)     170m    192.169.58.196   k8s-node02     <none>           <none>
csi-provisioner-s3-0                       2/2     Running   0               170m    192.169.85.196   k8s-node01     <none>           <none>
csi-s3-2rbh4                               2/2     Running   0               86m     192.168.79.130   k8s-node02     <none>           <none>
csi-s3-8mkbf                               2/2     Running   0               85m     192.168.79.129   k8s-node01     <none>           <none>

使用
首先我们在K8S集群中创建一个Minio的S3凭证,yaml文件如下(注意,这里secret下面用的stringData,所以下面的数据不需要经过base64编码)

[root@k8s-master01 ~]# vim csi-s3-secret.yaml
apiVersion: v1
kind: Secret
metadata:  name: csi-s3-secret  namespace: kube-system
stringData:accessKeyID: P4rOywJzZ03IzvLr7ix8secretAccessKey: m0BGZRr7UGgauOEcV55dEwCzl7drpHbxBLTA88MH  endpoint: "http://192.168.79.132:9029"  region: ""

接着,我们创建一个StorageClass(parameters中的命名空间为kube-system,和上面的secret要一致)

[root@k8s-master01 ~]# vim csi-s3-SC.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: csi-s3
provisioner: ch.ctrox.csi.s3-driver
parameters:mounter: rclonecsi.storage.k8s.io/provisioner-secret-name: csi-s3-secretcsi.storage.k8s.io/provisioner-secret-namespace: kube-systemcsi.storage.k8s.io/controller-publish-secret-name: csi-s3-secretcsi.storage.k8s.io/controller-publish-secret-namespace: kube-systemcsi.storage.k8s.io/node-stage-secret-name: csi-s3-secretcsi.storage.k8s.io/node-stage-secret-namespace: kube-systemcsi.storage.k8s.io/node-publish-secret-name: csi-s3-secretcsi.storage.k8s.io/node-publish-secret-namespace: kube-system

接着,我们创建一个PVC

[root@k8s-master01 ~]# vim csi-s3-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: csi-s3-pvcnamespace: default
spec:accessModes:- ReadWriteOnceresources:requests:storage: 10GistorageClassName: csi-s3

应用三个yaml文件:

[root@k8s-master01 ~]# kubectl apply -f csi-s3-secret.yaml[root@k8s-master01 ~]# kubectl apply -f csi-s3-SC.yaml[root@k8s-master01 ~]# kubectl apply -f csi-s3-pvc.yaml

在集群中查看PV已经动态供给了,PVC为绑定状态

[root@k8s-master01 ~]# kubectl get pvc
NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
csi-s3-pvc   Bound    pvc-afe861cc-bd67-4699-a44e-d5926347879e   10Gi       RWO            csi-s3         28m

我们再去到Minio的管理页面上看一下,已经有bucket生成


http://www.ppmy.cn/devtools/112578.html

相关文章

三数之和--力扣15

这里写目录标题 题目思路代码 题目 思路 题目要求三元组不能重复&#xff0c;如果使用哈希表来做&#xff0c;去重很复杂&#xff0c;而且需要额外的空间&#xff0c;我们这里使用双指针法直接针对数组操作。注意题目要求返回的是二维数组&#xff01; 最重要的是&#xff0c;…

Redis——通用命令

目录 Redis通用命令Redis中最核心的两个命令getset Redis全局命令keys语法注意事项 existsdel(delete)expirettlredis的key的过期策略是怎么实现的&#xff1f;了解拓展 type总结 Redis通用命令 Redis的命令非常非常多&#xff0c;所以 1. 掌握常用命令&#xff08;多操作练习…

Kafka+PostgreSql,构建一个总线服务

之前开发的系统&#xff0c;用到了RabbitMQ和SQL Server作为总线服务的传输层和存储层&#xff0c;最近一直在看Kafka和PostgreSql相关的知识&#xff0c;想着是不是可以把服务总线的技术栈切换到这个上面。今天花了点时间试了试&#xff0c;过程还是比较顺利的&#xff0c;后续…

如何注册Liberty大学并获取Perplexity Pro

俗称白嫖 Perplexity Pro 会员 如何注册Liberty大学并获取Perplexity Pro 1. 访问官网 首先&#xff0c;进入Liberty大学官网 https://www.liberty.edu&#xff0c;点击“Apply”按钮。 2. 选择课程 选择“Online”课程&#xff0c;选择“Certificate”&#xff0c;然后随便…

国产视频转换HDMI1.4转单/双MIPI DSI/CSI LT6911C芯片方案,带音频输出,QFN64封装 Lontium

LT6911C:HDMI 1.4 TO MIPI DSI/CSI 芯片简介&#xff1a; LT6911C是一款高性能的HDMI1.4转换器MIPI DSI/CSI芯片用于VR/智能手机/显示应用。对于MIPI DSI/CSI输出&#xff0c;LT6911C功能可配置单端口或双端口MIPIDSI/CSI 1高速时钟通道和1~4个高速数据通道最大1.5Gb/s/lane&am…

滑动窗口(1)_长度最小的子数组

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 滑动窗口(1)_长度最小的子数组 收录于专栏【经典算法练习】 本专栏旨在分享学习C的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. …

Nature Communications 可远程操控食欲的口服软体机器人

肥胖对人群的的影响是深远的&#xff0c;它不仅关系到个人的健康&#xff0c;还与全球公共卫生挑战密切相关。据世界卫生组织的数据&#xff0c;全球每8人中就有1人患有肥胖症。肥胖增加了患2型糖尿病、心血管疾病、某些癌症等多种健康问题的风险&#xff0c;并对社会经济产生重…

SpringBoot2:web开发常用功能实现及原理解析-整合EasyExcel实现Excel导入导出功能

1、工程包结构 主要是这5个Java类 2、导入EasyExcel包 这里同时贴出其他相关springboot的基础包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><depend…