- 创建minio-statefulset.yaml文件
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: default
spec:
type: NodePort
selector:
app: minio
ports:
- name: minio
port: 9000
targetPort: 9000
- name: console
port: 9090
targetPort: 9090
---
apiVersion: v1
kind: ConfigMap
metadata:
name: minio-config
namespace: default
data:
start-minio.sh: |
#!/bin/bash
set -e
POD_NAME=${POD_NAME}
REPLICAS=${MINIO_REPLICAS}
MINIO_HOSTS=""
for i in $(seq 0 $((REPLICAS-1))); do
MINIO_HOSTS="${MINIO_HOSTS} http://minio-${i}.minio:9000/data/minio-${i}"
done
mkdir -p /data/$POD_NAME
exec minio server $MINIO_HOSTS --console-address :9090
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: minio
name: minio
namespace: default
spec:
serviceName: minio
replicas: 4 # 必须与环境变量MINIO_REPLICAS值一致
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
name: minio
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: name
operator: In
values:
- minio
topologyKey: kubernetes.io/hostname
containers:
- name: minio
image: easzlab.io.local:5000/minio:RELEASE.2025-09-07T16-13-09Z
command: ["/bin/bash","/scripts/start-minio.sh"]
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MINIO_REPLICAS # 必须与上面spec.replicas值一致
value: "4"
- name: MINIO_ROOT_USER
value: "admin"
- name: MINIO_ROOT_PASSWORD
value: "Aa123456"
ports:
- containerPort: 9000
name: minio
- containerPort: 9090
name: console
resources:
requests:
memory: "500Mi"
cpu: "0.5"
limits:
memory: "4Gi"
cpu: "2"
securityContext:
runAsUser: 0
runAsGroup: 0
volumeMounts:
- mountPath: /scripts
name: startup-scripts
- mountPath: /data
name: minio-storage
subPathExpr: $(POD_NAME)
volumes:
- name: startup-scripts
configMap:
name: minio-config
defaultMode: 0755
- name: minio-storage
nfs:
server: 172.16.200.53
path: /data/minio
#hostPath:
# path: /data/minio
# type: DirectoryOrCreate
- 创建nfs共享目录:mkdir -p /data/minio , 然后启动服务
- 启动之后,通过yaml配置中指定的用户admin,密码Aa123456,访问minio的webui页面(9090端口对应的nodeport端口)
- 客户端工具mc
# 安装
curl https://dl.minio.org.cn/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
chmod +x /usr/local/bin/mc
# 首先需要使用 mc alias 命令将 S3 服务添加到 mc 别名配置 中
mc alias set myminio http://12.34.56.78:9000 ACCESS_KEY SECRET_KEY
mc alias ls myminio # 查看别名的配置
mc alias rm myminio # 删除别名配置
mc ls myminio # 列出存储桶
mc mb myminio/bucket-by-mc # 创建存储桶
mc rb myminio/bucket-by-mc # 删除存储桶
mc rm myminio/bucket-by-mc/file_name # 删除存储桶中的文件
mc cp file_name myminio/bucket-by-mc # 上传文件到存储桶
mc get myminio/bucket-by-mc/file_name ./file_name # 下载存储桶中的文件
# 更多使用参考:https://minio.org.cn/docs/minio/linux/reference/minio-mc.html
