网站Logo 小城的博客

MinIO部署

admin
5
2025-07-30
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.下载文件


动物装饰