You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现单EKS POD连接多RDS的多租户架构?

单Pod多租户适配方案(EKS+RDS场景)

1. 统一流量入口配置

  • 用ALB Ingress Controller(适配EKS)配置多域名或通配域名规则,把所有租户的域名(比如walmart.com、target.com)都指向同一个EKS Service,最终路由到你的单Pod集群。
  • 必须确保Ingress转发请求时保留Host头——这是你的应用识别租户的核心依据,毕竟应用已经能根据URL/Host判断要连哪个库。
  • 简单的Ingress配置示例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/group.name: multi-tenant-app
    alb.ingress.kubernetes.io/scheme: internet-facing
spec:
  rules:
  - host: "*.your-base-domain.com" # 也可以逐个列出租户独立域名
    http:
      paths:
      - path: /*
        pathType: Prefix
        backend:
          service:
            name: multi-tenant-app-svc
            port:
              number: 80

2. 租户数据库配置的动态管理

  • 别把RDS连接信息硬编码进Pod,用K8s的ConfigMap存非敏感配置(租户域名和RDS端点、库名的映射),Secret存敏感信息(数据库密码)。
  • ConfigMap示例:
apiVersion: v1
kind: ConfigMap
metadata:
  name: tenant-db-config
data:
  tenant-mapping.json: |
    {
      "walmart.com": {"db_endpoint": "walmart-rds.xxxx.us-east-1.rds.amazonaws.com", "db_name": "walmart_db"},
      "target.com": {"db_endpoint": "target-rds.xxxx.us-east-1.rds.amazonaws.com", "db_name": "target_db"}
    }
  • Secret示例:
apiVersion: v1
kind: Secret
metadata:
  name: tenant-db-secrets
type: Opaque
data:
  walmart-db-password: d2FybWFydF9wYXNzd29yZA== # base64编码后的密码
  target-db-password: dGFyZ2V0X3Bhc3N3b3Jk # base64编码后的密码
  • 把这两个资源挂载到Pod里,应用启动时加载配置;如果要支持动态新增租户,要么让应用定时刷新配置,要么用配置中心触发更新——更新ConfigMap/Secret后,Pod不需要重启就能读取新配置(取决于应用的配置加载逻辑)。

3. Jenkins+Terraform流水线改造

  • 原来的流水线是每个租户部署新Pod+Route53记录,现在改成:
    • 新增租户时,用Terraform在Route53添加域名解析,指向ALB的公网域名。
    • 用Terraform更新K8s的ConfigMap/Secret,把新租户的RDS连接信息加进去。
    • 完全不用再部署新Pod,单Pod集群会自动识别新租户的域名和对应数据库配置。
    • 应用版本更新时,只需要重新部署这个单Pod的Deployment(滚动更新),所有租户的版本会同步升级。

4. 单Pod的高可用与扩展性优化

  • 别只跑1个Pod,用Deployment管理,设置2-3个副本数,避免单点故障。
  • 开启HPA(Horizontal Pod Autoscaler),根据CPU/内存使用率或者请求数这类自定义指标自动扩容Pod,应对不同租户的流量波动。

5. 安全隔离强化

  • 给Pod绑定IAM角色,用RDS IAM认证访问数据库,每个租户的数据库用户关联对应的IAM权限,比硬编码密码安全得多。
  • 配置K8s网络策略,限制Pod只能访问允许的RDS实例,防止跨租户的数据库访问。
  • 启用Pod的安全上下文,限制容器的权限,降低被攻击的风险。

内容的提问来源于stack exchange,提问作者Muhammad Ehtesham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:20:25