【问题标题】:Why is communication from GKE to a private ip in GCP not working?为什么从 GKE 到 GCP 中的私有 IP 的通信不起作用?
【发布时间】:2020-10-06 05:04:11
【问题描述】:

我认为 Google Cloud 中的设置相当简单——一个 GKE 集群、一个 Cloud SQL 实例和一个“点击部署”Kafka VM 实例。

所有资源都在同一个 VPC 中,防火墙规则允许所有流量进入内部 VPC CIDR 块。

GKE 集群中的 Pod 通过私有 IP 地址访问 Cloud SQL 实例没有问题。但他们似乎无法通过私有 IP 地址访问 Kafka 实例:

# kafkacat -L -b 10.1.100.2
% ERROR: Failed to acquire metadata: Local: Broker transport failure

我在 VPC 中手动启动了另一个 VM,连接到 Kafka 实例没有问题:

# kafkacat -L -b 10.1.100.2
Metadata for all topics (from broker -1: 10.1.100.2:9092/bootstrap):
 1 brokers:
  broker 0 at ....us-east1-b.c.....internal:9092
 1 topics:
  topic "notifications" with 1 partitions:
    partition 0, leader 0, replicas: 0, isrs: 0

我似乎看不出 GKE 中的容器和手动启动的 VM 之间的网络有任何真正的区别,特别是因为两者都可以访问 10.10.0.3 的 Cloud SQL 实例。

我该去哪里寻找阻止连接的原因?

【问题讨论】:

    标签: google-cloud-platform


    【解决方案1】:

    这给了我我需要的东西:https://serverfault.com/a/924317

    在我长期使用 AWS 之后,GCP 中的网络规则仍然看起来很不稳定。我的规则允许 VPC CIDR 块中的任何内容与相同 CIDR 块中的任何其他内容联系,但这还不够。显式添加工作节点子网作为新规则的源会打开它。

    【讨论】:

      【解决方案2】:

      我发现错误与network有关, 但是,如果您在同一 VPC 网络上使用 gke,您将确保 configure 正确为 Internal Load Balancer,我还看到此产品或功能是 BETA 版本,这意味着它还不能保证按预期工作,另一个建议是您确保您没有使用任何可能会阻止连接的policy,我在社区中找到了下一个article,可能会帮助您解决它

      【讨论】:

      • 这不太对,但让我走上了一些有希望的道路,谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2020-03-08
      • 2013-10-02
      • 2020-04-15
      • 1970-01-01
      • 2020-11-02
      相关资源
      最近更新 更多