GCP 上的 Terraform:如何将我的集群节点列入 RDS 白名单
Posted
技术标签:
【中文标题】GCP 上的 Terraform:如何将我的集群节点列入 RDS 白名单【英文标题】:Terraform on GCP: How to whitelist my cluster nodes for RDS 【发布时间】:2021-10-15 15:10:09 【问题描述】:我有一个 kubernetes 集群和一个在 terraform 中配置的 RDS,现在我想将 RDS 的节点 IP 列入白名单。有没有办法以某种方式从集群配置访问节点池实例?我基本上想要的 RDS 配置类似于
ip_configuration
dynamic "authorized_networks"
for_each = google_container_cluster.data_lake.network
iterator = node
content
name = node.network.ip
value = node.network.ip
但据我所知,似乎没有办法获得节点/IP 的列表.. 我试过了
ip_configuration
authorized_networks
value = google_container_cluster.my_cluster.cluster_ipv4_cidr
这导致了Non-routable or private authorized network (10.80.0.0/14).., invalid
,所以看起来这只适用于公共 IP。或者我必须为此设置一个单独的 VPC?
【问题讨论】:
【参考方案1】:我建议您首先在 GKE 前面设置 NAT 网关,以便您可以管理来自单个 egress 点。
您可以使用此 terraform 创建和设置 NAT 网关:https://registry.terraform.io/modules/GoogleCloudPlatform/nat-gateway/google/latest/examples/gke-nat-gateway
模块源码:https://github.com/GoogleCloudPlatform/terraform-google-nat-gateway/tree/v1.2.3/examples/gke-nat-gateway
使用 NAT 网关,您的所有节点流量将从单个 IP 流出,您可以将此 single IP
列入白名单到 RDS
。
由于 RDS 在 AWS 服务中,VPC 对等是不可能的,否则如果使用 GCP SQL 也是一种选择。
【讨论】:
以上是关于GCP 上的 Terraform:如何将我的集群节点列入 RDS 白名单的主要内容,如果未能解决你的问题,请参考以下文章
在同一个 TF 脚本中使用多个 Terraform 提供程序(GCP 和 Kubernetes)创建资源