首页 > 解决方案 > Google Kubernetes Engine 服务无法连接到 Snowflake

问题描述

我在 Google Cloud Platform 上为 GKE 部署了一项服务,但不幸的是,Snowflake 阻止了 IP 地址。我认为 Snowflake 仅启用与已列入白名单的 IP 地址的连接,因此我尝试在适当的网络中创建一个集群。但是当我公开服务时,我仍然遇到错误。

我还在适当的网络中创建了一个 App Engine 实例,但它仍然不允许我连接到 Snowflake。

错误信息:

DatabaseError: (snowflake.connector.errors.DatabaseError) 250001 (08001): None: Failed to connect to DB: IP [XXXXXXX] is not allowed to access Snowflake. Contact your local security administrator.\n(Background on this error at: http://sqlalche.me/e/4xp6)\nINFO:snowflake.con! nector.connection:closed\nINFO:snowflake.connector.connection:closed\n

标签: google-app-enginekubernetesgoogle-cloud-platformgoogle-kubernetes-enginefirewall

解决方案


您的雪花应用程序仅接受来自白名单 IP 的请求,这意味着您需要有一个特定的 IP 或一组调用雪花的特定 IP。默认情况下,GKE 不会这样做。

当来自您的一个 pod 的请求尝试到达集群外部以联系雪花时,pod IP 是 SNATd 以使用节点的 IP 地址。节点和节点 IP 都是动态且无状态的,因此您无法确保使用特定的 IP。

相反,请考虑将Cloud NAT 与 GKE 结合使用。这将确保来自 GKE 集群的所有请求都使用相同的 IP 地址。然后,您可以将 Snowflake 上的 Cloud NAT IP 列入白名单。


推荐阅读