Files
k3s/009-基础设施/002-s3/README.md
2026-02-05 00:11:05 +08:00

2.7 KiB
Raw Blame History

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
}

部署步骤

# 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

访问服务

自动权限策略

新创建的存储桶会在 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

注意:这会删除所有数据,请先备份重要文件。