MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。
MinIO有能力在任何地方部署 - 公有云或私有云,裸金属基础设施,编排环境,以及边缘基础设施。
官网链接:
https://www.minio.org.cn/docs/minio/kubernetes/upstream/
2.minio支持的部署方式
k8s部署方式:
https://minio.org.cn/docs/minio/kubernetes/upstream/operations/installation.html
docker部署方式:
https://minio.org.cn/docs/minio/container/operations/installation.html
Linux部署方式:
https://minio.org.cn/docs/minio/linux/operations/installation.html
MacOS部署方式:
https://minio.org.cn/docs/minio/macos/operations/installation.html
Windows部署方式:
https://minio.org.cn/docs/minio/windows/operations/installation.html
温馨提示:
如上图所示,官方支持的部署方式还蛮丰富的,本案例只是快速将minio部署到k8s集群进行体验测试,因此并没有考虑数据持久化问题。
二.K8S部署MinIO实战案例
1.编写资源清单
[root@master241 11-minio]# cat 01-minio.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-minio
spec:
replicas: 1
selector:
matchLabels:
apps: minio
template:
metadata:
labels:
apps: minio
spec:
containers:
- image: docker.io/minio/minio:RELEASE.2025-06-13T11-33-47Z-cpuv1
# 启动minio服务
command:
- minio
# 单点模式
args:
- server
- /mnt/data
# 集群模式
#args:
#- server
#- http://minio{1...3}.yinzhengjie.com/data
name: c1
env:
# 指定minio访问的用户名
- name: MINIO_ACCESS_KEY
value: admin
# 指定minio访问的密码
- name: MINIO_SECRET_KEY
value: yinzhengjie
# 启用web控制台。
- name: MINIO_BROWSER
value: "on"
# 控制台端口
- name: MINIO_CONSOLE_ADDRESS
value: ":9001"
ports:
- containerPort: 9001
name: web
- containerPort: 9400
name: s3
[root@master241 11-minio]#
[root@master241 11-minio]#
[root@master241 11-minio]# cat 02-svc-minio.yaml
apiVersion: v1
kind: Service
metadata:
name: svc-minio
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 9001
nodePort: 9001
selector:
apps: minio
[root@master241 11-minio]#
2.创建资源
[root@master241 11-minio]# ll
total 16
drwxr-xr-x 2 root root 4096 Jul 22 11:03 ./
drwxr-xr-x 13 root root 4096 Jul 22 09:48 ../
-rw-r--r-- 1 root root 1062 Jul 22 10:58 01-minio.yaml
-rw-r--r-- 1 root root 180 Jul 22 11:03 02-svc-minio.yaml
[root@master241 11-minio]#
[root@master241 11-minio]# kubectl apply -f .
deployment.apps/deploy-minio created
service/svc-minio created
[root@master241 11-minio]#
[root@master241 11-minio]# kubectl get deploy,rs,po,svc -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/deploy-minio 1/1 1 1 10s c1 docker.io/minio/minio:RELEASE.2025-06-13T11-33-47Z-cpuv1 apps=minio
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/deploy-minio-9fdc98bd4 1 1 1 10s c1 docker.io/minio/minio:RELEASE.2025-06-13T11-33-47Z-cpuv1 apps=minio,pod-template-hash=9fdc98bd4
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/deploy-minio-9fdc98bd4-84bnp 1/1 Running 0 10s 10.100.207.16 worker243 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.192.0.1 <none> 443/TCP 77m <none>
service/svc-minio LoadBalancer 10.194.132.244 10.0.0.153 80:9001/TCP 10s apps=minio
[root@master241 11-minio]#
三.测试MinIO读写
1.创建Bucket
2.上传文件
3.下载文件