网站首页 > 博客文章 正文
对象存储使用的场景很多,本文分享在k8s环境下快速部署一个对象存储服务的方法。选用的对象存储服务是Minio。在Java开发环境下,Minio可以非常方便的在Spring Cloud框架下集成。
文章介绍的方法适合在测试环境下使用,因为Minio是单节点,单存储目录,使用的PV是“hostPath”类型的,高可用没有保证,在生产环境下,建议部署Minio在k8s集群外,并配置专用的没有格式化硬盘作为Minio使用的硬盘。
- 创建PV
测试环境如果有“Storage Class”,可以使用SC来创建PV。这里使用主机的目录作为PV,下面是yaml文件,预先在集群中主机“10.0.10.12”中创建目录“/var/lib/k8s/minio-data”,
apiVersion: v1
kind: PersistentVolume
metadata:
name: minio-pv
spec:
storageClassName: manual
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /var/lib/k8s/minio-data #主机的目录,根据实际情况修改
type: Directory
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- 10.0.10.12 #根据实际情况修改
- 创建PVC
创建好PV后,PVC对象比较简单,直接上yaml文件,
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minio-pvc
namespace: example #根据实际namespace修改
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
部署后,可以看到PVC已经成功绑定PV,
- 部署Minio
Minio部署会用到minio镜像,如果镜像不能顺利拉取到,可以先想办法下载到镜像,然后上传到要部署的主机。下面是使用的部署文件,
---
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: example
spec:
selector:
app: minio
ports:
- name: apiport
protocol: TCP
port: 9000
targetPort: 9000
- name: webport
protocol: TCP
port: 9090
targetPort: 9090
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
namespace: example
spec:
replicas: 1
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
containers:
- name: minio
image: minio/minio
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- -c
args:
- minio server /data --console-address :9090
env:
- name: MINIO_ROOT_USER
value: "minioadmin"
- name: MINIO_ROOT_PASSWORD
value: "longlongpwd"
volumeMounts:
- name: minio-data
mountPath: /data
volumes:
- name: minio-data
persistentVolumeClaim:
claimName: minio-pvc
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: minio
namespace: example
annotations:
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: minio
servicePort: 9000
host: minio-test.example.com
这样可以通过域名“minio-test.example.com”访问到上传到Minio的文件。注意,这里使用的k8s版本是“v1.16.8”,如果使用较新的版本,Ingress的配置要根据官方文档修改。
- 配置Minio管理后台
部署完Minio后,可以通过链接“http://服务器IP:ServiceNodePort/”访问Minio后台。笔者的环境查到Minio的Web管理地址是“http://10.0.10.122:30849”,
浏览器访问,然后创建桶、访问凭据、策略即可。
一种常见的使用场景是存储在Minio的文件被前端代码访问,这种情况下,必须给桶内的文件赋予只读权限,配置也很简单,
这样桶内的文件不用任何凭据即可只读访问。
再次强调上面的内容适合在测试环境下使用,如果要在生产环境下使用,请严格参照Minio官方文档,毕竟数据无价。
希望这篇文章能帮到正在奋斗的你!
猜你喜欢
- 2024-09-26 Linux 安装/卸载 Minio(linux安装卸载命令)
- 2024-09-26 关于MINIO的DOCKER配置、403错误配置教程
- 2024-09-26 mysql备份自动存储到开源的minio(mysql 备份文件)
- 2024-09-26 2021年的4个开源对象存储平台(开源软件定义存储)
- 2024-09-26 Minio存储服务兼容Amazon S3(minio 存储原理)
- 2024-09-26 在群晖 Docker 中部署 MinIO(群晖docker使用教程)
- 2024-09-26 接私活利器丨X-SpringBoot轻量级的Java快速开发平台,源码分享
- 2024-09-26 渗透基础——Minio版本探测(mini pool)
- 2024-09-26 使用 Minio 作为 OpenStack Glance 以及 Cinder Backup 的 S3 后端
- 2024-09-26 MinIO 信息泄露(CVE-2023-28432)漏洞检测及汇总
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)