【问题标题】:Accessing External custom IP port from kubernetes从 kubernetes 访问外部自定义 IP 端口
【发布时间】:2021-07-05 00:36:10
【问题描述】:

我有一个微服务架构,我的一项服务需要访问一些特定的 IP (3.*.*.*:63815) 来连接 WebSocket。因此,从提供商方面,我已将我的入口外部 IP 列入白名单。

但是当我尝试连接时,连接没有建立。

我是否需要更新任何防火墙规则或通过 Ingress 在内部添加自定义 IP/端口访问?

对此的任何帮助将不胜感激!

编辑:

  1. 我为此使用 GCP Cloud
  2. 我需要从 POD 连接外部 FIXapi 客户端

【问题讨论】:

  • 您确定您的外部 IP 被检测为ingress External IP?数据包究竟是如何从 Pod 内部流向外部网络的?
  • @zerkms 我不确定。请建议将哪个 ip 用于白名单
  • 使用您的 pod 从外部网络看到的 IP。
  • 很可能您需要将运行 pod 的节点的 IP 地址列入白名单
  • 您好,我很难理解您的问题。请编辑您的问题以包括:1. 应该以哪种方式进行通信(如果是来自Pod 的传入或传出流量),2. 请指定您使用的云提供商。 3.如果可行请附上minimal, reproducible example

标签: kubernetes microservices google-kubernetes-engine kubernetes-ingress


【解决方案1】:

我需要同意并让用户@dishant makwana 发表的评论更加可见:

您很可能需要将运行 pod 的节点的 IP 地址列入白名单

假设您想从您的GKE Pod 向位于您的project/organization/GCP 之外的服务发送请求,您应该允许“on”上的流量来自您的GCP 资源的“前提”位置。

您正在创建的流量的源 IP 可以是:

  • GKE 节点s外部 IP 地址es - 如果集群未创建私有
  • Cloud NAT IP 地址 - 如果您为 私有 集群配置了 Cloud NAT

附注!

如果您尚未为您的私有集群创建Cloud NAT,您将无法访问外部资源。


回答以下问题:

我是否需要更新任何防火墙规则或通过 Ingress 在内部添加自定义 IP/端口访问?

如果我们谈论的是GKE/GCP 环境,那么,不。您不需要从GCP 端修改任何防火墙规则(假设您没有以任何方式重新配置防火墙规则)。

Kubernetes/GKE 中的Ingress 资源(非规则)用于将您自己的应用程序暴露给外部访问(用于入站流量,而不是出站流量)。

引用官方文档:

隐含规则

每个 VPC 网络都有两个隐含的防火墙规则。这些规则存在,但未显示在 Cloud Console 中:

隐含的允许出口规则。操作为 allow、目的地为 0.0.0.0/0 且优先级最低 (65535) 的出口规则允许任何实例将流量发送到任何目的地,但 Google Cloud 的流量 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


其他资源:

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2017-03-03
    • 2020-09-18
    • 2020-07-02
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多