【问题标题】:Static IP address from gcloud docker container using Curl使用 Curl 来自 gcloud docker 容器的静态 IP 地址
【发布时间】:2017-09-19 18:48:14
【问题描述】:

我在 gcloud 上有多个不同的 pod(容器)(9),它们使用 kubenetes,每个都有自己的静态 IP 地址。我在它们都使用的集群中也有多个节点池 (9)。如果我从任何 pod(容器)发出 cURL 请求,目标 URL 日志中记录的 IP 地址始终是集群中第一个节点池的 IP 地址。

我的问题是这种情况会一直发生吗?如果删除此节点池,我将丢失 IP 地址。有什么办法可以使这个 cURL 请求地址成为静态的吗?

我需要这个,因为这些容器需要 cURL 一个受 IP 限制的外部服务,并且我需要在每次更改此 IP 地址时提出更改此 IP 地址的请求。

【问题讨论】:

    标签: php curl gcloud google-kubernetes-engine


    【解决方案1】:

    由于您有大量节点,我认为唯一可靠的方法是将单个节点配置为出站流量的 NAT 网关。因此,来自所有节点的出站流量将首先进入 NAT 网关,该网关又将连接到您的外部服务。然后,您可以为该网关 VM 实例分配一个静态 IP。显然,这也为外部流量引入了单点故障。

    page 包含有关设置 NAT 网关的详细步骤。也可以参考this discussion

    第二种选择是为需要外部访问的 pod 设置一个专用池/节点。然后,您可以单独为这些节点提供专用 IP。

    【讨论】:

    • NAT 网关可能是目前唯一的解决方案,但也有其缺点。 GKE 团队似乎意识到了这个缺失的功能。关于您为节点分配专用 IP 的评论,我不知道如何执行此操作。我可以将专用 IP 分配给 pod,但不能分配给节点。如果您知道如何执行此操作,那么这可能是一个解决方案。
    • 从云仪表板中,单击“VPC 网络”,然后单击“外部 IP 地址”。从这里您可以为您的节点提供静态 IP 地址。当您进行 API 调用时,这些 IP 地址将对外部服务可见。
    • 好的,我明白了。这个stackoverflow.com/questions/41133755/… 也有帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 2020-09-25
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    相关资源
    最近更新 更多