# 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` ### 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 } ``` ## 部署步骤 ```bash # 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: ```yaml resources: requests: storage: 50Gi # 修改为你需要的大小 ``` ## 故障排查 ### Pod 无法启动 ```bash kubectl describe pod -n minio ``` ### 查看详细日志 ```bash # MinIO 主容器 kubectl logs -n minio -c minio # 策略管理器 kubectl logs -n minio -c policy-manager ``` ### 检查 Ingress ```bash kubectl get ingress -n minio ``` ## 架构说明 ``` 用户 HTTPS 请求 ↓ Caddy (SSL 终止) ↓ HTTP Traefik (路由) ↓ MinIO Service ├─ MinIO 容器 (9000: API, 9001: Console) └─ Policy Manager 容器 (自动设置桶权限) ``` ## 卸载 ```bash kubectl delete -f minio.yaml ``` 注意:这会删除所有数据,请先备份重要文件。