【问题标题】:Connect to kubernetes engine from app engine从应用引擎连接到 Kubernetes 引擎
【发布时间】:2018-07-05 19:48:22
【问题描述】:

我们希望使用应用引擎灵活的流程来更新我们的 ElasticSearch 索引,该索引位于 Google Kubernetes Engine 上。我们需要通过 http(s) 地址连接到 ElasticSearch。推荐的方法是什么?我们不想将集群暴露给外部网络,因为我们在它前面没有身份验证。

我已经看到了这个SO post,但是在问题/答案之后的 2 年里,k8s 和 AE 都发生了很大变化。

感谢您的帮助!

【问题讨论】:

    标签: google-app-engine elasticsearch kubernetes google-kubernetes-engine


    【解决方案1】:

    您链接到的帖子是关于 App Engine 标准的。 App Engine Flex 构建在 Google Compute Engine 虚拟机和 Google Kubernetes Engine 集群使用的同一 Google Cloud 网络之上。只要您将 App Engine flex 应用程序放入与 Google Kubernetes Engine 集群相同的 VPC 中,您就应该能够使用内部网络在它们之间进行通信。

    另一方面,要将 Kubernetes 服务公开给在集群外部运行的任何东西,您需要修改该服务以进行弹性搜索,因为默认情况下 Kubernetes 服务只能从集群内部访问(由于服务 IP 是通过 IPTables 魔术分配和访问的)。您需要“公开”服务,但不是通过外部负载均衡器将其公开给互联网,而是使用内部负载平衡器将其公开给 VPC。见https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing

    【讨论】:

    • 谢谢@robert。 App Engine 服务始终与 GKE 集群位于同一 VPC 中,因此现在知道我认为我的问题是连接字符串错误。连接字符串是什么——是 Kubernetes 服务的集群 IP 吗?
    • 它应该是您公开 k8s 服务的内部负载均衡器的 IP。如果您只是尝试连接到服务 ip,那么数据包将不知道从 flex 应用程序到 pod 的路径。
    • 完美!感谢您的帮助@RobertBailey
    • 想知道如果您需要为客户端连接设置“bolt+routing”而不是“bolt”需要做什么?
    【解决方案2】:

    除了罗伯特的回答,确保应用引擎和GKE在同一个区域, 因为内部负载均衡器无法从其他区域使用。

    检查这个https://issuetracker.google.com/issues/111021512

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 2017-10-23
      • 2011-08-25
      • 2016-03-02
      • 2021-01-12
      相关资源
      最近更新 更多