minio配置详解
复制保存成 minio-final.yaml 以后随时能用
# 密码配置:K8s 用来存敏感信息(账号密码),不明文显示
apiVersion: v1
kind: Secret # Secret 类型:专门存密码、密钥
metadata:
name: minio-secret # 名字,后面 Pod 会引用
data:
accesskey: YWRtaW4= # 账号 admin 的 base64 编码
secretkey: TWluaW9AMjAyNiE= # 密码 Minio@2026! 的 base64 编码
---
# 核心:MinIO 有状态应用(必须用 StatefulSet,不能用 Deployment)
apiVersion: apps/v1
kind: StatefulSet # 有状态应用控制器:固定 Pod 名字 + 固定存储
metadata:
name: minio # 服务名
spec:
serviceName: minio-hl # 绑定内部无头服务,用于节点通信
replicas: 4 # 启动 4 个 MinIO 节点 → 分布式集群
selector:
matchLabels:
app: minio # 标签匹配,管理下面的 Pod
template:
metadata:
labels:
app: minio # 给 Pod 打标签
spec:
# 存储配置:直接用节点本地目录 /data/minio,不需要 PV/PVC
volumes:
- name: data
hostPath:
path: /data/minio # 节点上的真实目录
type: DirectoryOrCreate # 不存在就自动创建
containers:
- name: minio # 容器名
image: quay.io/minio/minio:latest # 国内可拉取的镜像(解决超时问题)
# MinIO 启动命令
args:
- server # 启动 MinIO 服务
- --console-address # 指定 Web 控制台端口
- ":9001" # 控制台端口 9001
- http://minio-{0...3}.minio-hl.default.svc.cluster.local/data # 4 节点分布式集群地址
# 环境变量:从 Secret 读取账号密码
env:
- name: MINIO_ROOT_USER
valueFrom:
secretKeyRef:
name: minio-secret # 引用上面的 Secret
key: accesskey
- name: MINIO_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: minio-secret
key: secretkey
# 目录挂载:把节点的 /data/minio 挂到容器 /data
volumeMounts:
- name: data
mountPath: /data
---
# 无头服务:给 MinIO 节点之间通信用
apiVersion: v1
kind: Service
metadata:
name: minio-hl # 服务名
spec:
clusterIP: None # 无头服务(Headless):固定解析 Pod IP
selector:
app: minio # 绑定所有 minio Pod
---
# Web 控制台服务:让你浏览器访问界面
apiVersion: v1
kind: Service
metadata:
name: minio-console
spec:
type: NodePort # NodePort:暴露端口给外部访问
selector:
app: minio
ports:
- port: 9001 # 容器内部控制台端口
targetPort: 9001
nodePort: 30001 # 外部访问端口 → 节点IP:30001
---
# API 服务:给 mc 命令、程序上传文件用
apiVersion: v1
kind: Service
metadata:
name: minio
spec:
type: NodePort
selector:
app: minio
ports:
- port: 9000 # MinIO 数据接口
targetPort: 9000
nodePort: 30000 # 外部访问端口 → 节点IP:30000
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
楚少爱看雪!
喜欢就支持一下吧