kubernetes - 从 kubernetes 访问外部自定义 IP 端口
问题描述
我有一个微服务架构,我的一项服务需要访问一些特定的 IP(3.*.*.*:63815)
来连接 WebSocket。因此,从提供商方面,我将我的入口外部 IP 列入白名单。
但是当我尝试连接时,连接没有建立。
我是否需要更新任何防火墙规则或通过 Ingress 在内部添加自定义 IP/端口访问?
对此的任何帮助将不胜感激!
编辑:
- 我为此使用 GCP Cloud
- 我需要从 POD 连接外部 FIXapi 客户端
解决方案
我需要同意用户@dishant makwana 的评论并给予更多可见性:
您很可能需要将运行 pod 的节点的 IP 地址列入白名单
假设您想将您的请求发送GKE
Pod
到位于您project
/ organization
/之外的服务GCP
,您应该允许来自您的GCP
资源的“本地”位置的流量。
您正在创建的流量的源 IP 可以是:
GKE
节点的外部 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
) 允许任何实例将流量发送到任何目的地,但被 Google Cloud阻止的流量除外。更高优先级的防火墙规则可能会限制出站访问。如果没有其他防火墙规则拒绝出站流量并且实例具有外部 IP 地址或使用 Cloud NAT 实例,则允许 Internet 访问。有关详细信息,请参阅Internet 访问要求。隐含的拒绝入口规则。一个入口规则,其动作是
deny
,源是0.0.0.0/0
,并且优先级是最低的 (65535
) 通过阻止传入的连接来保护所有实例。更高优先级的规则可能允许传入访问。默认网络包括一些覆盖此规则的附加规则,允许某些类型的传入连接。
其他资源:
推荐阅读
- javascript - 监控用户在页面上的天数
- powershell - 发送邮件消息语言
- azure-service-fabric - 如何在本地收集 SF 反向代理日志
- sql - SQL 服务器“SELECT”中的条件自动增量值
- python - 为什么每次 Gauss-Seidel 迭代都要执行两次组件?(OpenMDAO 2.4.0)
- python - 在 Python 中重命名拼写错误的分类值
- ios - 当我想添加谷歌地图时,我在 xcoda 中遇到错误
- python - Django rest框架中的多部分解析器
- python - Django 按多个字段分组
- javascript - 向表单添加新字段,名称属性保持不变