首次提交:初始化项目
This commit is contained in:
131
009-基础设施/002-s3/README.md
Normal file
131
009-基础设施/002-s3/README.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# 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 <pod-name>
|
||||
```
|
||||
|
||||
### 查看详细日志
|
||||
```bash
|
||||
# MinIO 主容器
|
||||
kubectl logs -n minio <pod-name> -c minio
|
||||
|
||||
# 策略管理器
|
||||
kubectl logs -n minio <pod-name> -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
|
||||
```
|
||||
|
||||
注意:这会删除所有数据,请先备份重要文件。
|
||||
Reference in New Issue
Block a user