在尝试评估如何从 Google Kubernetes Engine pod 连接到 Cloud SQL 数据库时,有几种方法可以做到这一点。一种是使用边车云代理。另一个是使用私有 IP 并在两者之间使用 SSL 连接。两者都有明确的案例吗?还是它们都提供相同的功能?有没有被认为是“最佳实践”?
Cloud SQL 代理边车
云 sql 代理sidecar与托管在 Google 基础架构上的代理服务建立 TCP 连接。然后,这会将您连接到 Google 网络上的云 SQL 实例。
优点
- 无需管理应用程序中的加密材料即可建立安全连接
- 连接到实例,您无需管理 DNS 记录或 IP 地址
缺点
- 您必须创建一个存储服务帐户密钥的密钥。
- 您必须在 pod 旁边管理一个 sidecar 实例,如果失败,您将无法再连接到数据库
- 由于代理层的层数增加了延迟
私有 IP + SSL
使用私有 IP并将实例连接到您的 VPC 允许您使用未公开路由的内部 IP 地址,并将流量保留在您的 VPC 实例中。最重要的是,只设置 SSL到您的数据库的连接,以确保点对点的流量是安全的。
优点
- 与数据库的低延迟连接,因为它是点对点连接
- 您管理服务之间的密钥
- 两者之间无需连接外部依赖项或系统
缺点
- 您必须在连接内管理 SSL 证书
- 您必须验证集群中的 IP 和 DNS 记录设置是否正确
我错过了什么吗?这两个确实提供相同的东西吗?两者之间是否没有绝对明确的赢家,您可以选择最适合您风格的任何一个?