MinIO S3 对象存储部署
功能特性
- ✅ MinIO 对象存储服务
- ✅ 自动 SSL 证书(通过 Caddy)
- ✅ 自动设置新存储桶为公开只读权限
- ✅ Web 管理控制台
- ✅ S3 兼容 API
部署前准备
1. 修改配置
编辑 minio.yaml,替换以下内容:
域名配置(3 处):
s3.u6.net3w.com→ 你的 S3 API 域名console.s3.u6.net3w.com→ 你的控制台域名
凭证配置(4 处):
MINIO_ROOT_USER: "admin"→ 你的管理员账号MINIO_ROOT_PASSWORD: "adminks.."→ 你的管理员密码(建议至少 8 位)
架构配置(1 处):
linux-arm64→ 根据你的 CPU 架构选择:- ARM64:
linux-arm64 - x86_64:
linux-amd64
- ARM64:
2. 配置 DNS
将域名解析到你的服务器 IP:
s3.yourdomain.com A your-server-ip
console.s3.yourdomain.com A your-server-ip
3. 配置 Caddy
在 Caddy 配置中添加(如果使用 Caddy 做 SSL):
s3.yourdomain.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
console.s3.yourdomain.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
部署步骤
# 1. 部署 MinIO
kubectl apply -f minio.yaml
# 2. 检查部署状态
kubectl get pods -n minio
# 3. 查看日志
kubectl logs -n minio -l app=minio -c minio
kubectl logs -n minio -l app=minio -c policy-manager
访问服务
- Web 控制台: https://console.s3.yourdomain.com
- S3 API 端点: https://s3.yourdomain.com
- 登录凭证: 使用你配置的 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD
自动权限策略
新创建的存储桶会在 30 秒内自动设置为 公开只读(download) 权限:
- ✅ 任何人可以下载文件(无需认证)
- ✅ 上传/删除需要认证
如需保持某个桶为私有,在控制台手动改回 PRIVATE 即可。
存储配置
默认使用 50Gi 存储空间,修改方法:
编辑 minio.yaml 中的 PersistentVolumeClaim:
resources:
requests:
storage: 50Gi # 修改为你需要的大小
故障排查
Pod 无法启动
kubectl describe pod -n minio <pod-name>
查看详细日志
# MinIO 主容器
kubectl logs -n minio <pod-name> -c minio
# 策略管理器
kubectl logs -n minio <pod-name> -c policy-manager
检查 Ingress
kubectl get ingress -n minio
架构说明
用户 HTTPS 请求
↓
Caddy (SSL 终止)
↓ HTTP
Traefik (路由)
↓
MinIO Service
├─ MinIO 容器 (9000: API, 9001: Console)
└─ Policy Manager 容器 (自动设置桶权限)
卸载
kubectl delete -f minio.yaml
注意:这会删除所有数据,请先备份重要文件。