我有一个微服务架构,我的一个服务需要访问一些特定的 IP (3.*.*.*:63815)
才能连接 WebSocket。因此,从提供商方面来看,我已将入口外部 IP 列入白名单。
但是当我尝试连接时,连接没有建立。
我是否需要更新任何防火墙规则或通过 Ingress 在内部添加自定义 IP/端口访问?
对此的任何帮助将不胜感激!
编辑:
答案 0 :(得分:0)
我需要同意用户@dishant makwana 的评论并给予更多关注:
<块引用>很可能您需要将运行 Pod 的节点的 IP 地址列入白名单
假设您想从 GKE
Pod
向位于 project
/organization
/GCP
之外的服务发送请求,您应该允许来自您的 GCP
资源的“本地”位置的流量。
您正在创建的流量的源 IP 可以是:
GKE
节点s 外部 IP 地址es - 如果集群未创建为私有。Cloud NAT
IP 地址 - 如果您已为私有集群配置了 Cloud NAT
。附注!
如果您尚未为您的私有集群创建 Cloud NAT
,您将无法访问外部资源。
回答以下问题:
<块引用>我是否需要更新任何防火墙规则或通过 Ingress 在内部添加自定义 IP/端口访问?
如果我们谈论的是 GKE
/GCP
环境,那么,不。您不需要从 GCP
端修改任何防火墙规则(假设您没有以任何方式重新配置防火墙规则)。
Ingress
/Kubernetes
中的 GKE
资源(不是规则)用于将您自己的应用程序暴露给外部访问(用于入站流量,而不是出站流量)。
引用官方文档:
<块引用>每个 VPC 网络都有两个隐含的防火墙规则。这些规则存在,但未显示在 Cloud Console 中:
隐含的允许出口规则。操作为 allow
、目的地为 0.0.0.0/0
且优先级尽可能低 (65535
) 的出口规则允许任何实例将流量发送到任何目的地,但流量 blocked 除外由谷歌云。更高优先级的防火墙规则可能会限制出站访问。如果没有其他防火墙规则拒绝出站流量,并且实例具有外部 IP 地址或使用 Cloud NAT 实例,则允许 Internet 访问。有关详细信息,请参阅 Internet access requirements。
隐含拒绝入口规则。操作为 deny
、来源为 0.0.0.0/0
且优先级尽可能低 (65535
) 的入口规则通过阻止传入连接来保护所有实例。更高优先级的规则可能允许传入访问。默认网络包含一些 additional rules 覆盖此网络,允许某些类型的传入连接。
-- Cloud.google.com: VPC: Docs: Firewall: Default firewall rules
其他资源: