【问题标题】:Kubernetes resolving backend IPKubernetes 解析后端 IP
【发布时间】:2018-07-20 10:04:10
【问题描述】:

我的后端和前端部署在 Google Kubernetes Engine (GKE) 上。让我们考虑这些步骤 -

  1. 用户打开浏览器并指向yyy.yyy.yyy:8080
  2. 浏览器加载登录页面。
  3. 用户输入用户名/密码并按下“登录”按钮。
  4. 浏览器(ReactJS 应用)向 REST 后端 xxx.xxx.xxx:7070 发送请求以进行验证。

现在我的问题是,我们如何注入后端(在本例中为 xxx.xxx.xxx)ip 前端 pod?因为这个 ip 不是静态的(我不想让它成为静态的),并且将由 GKE 提供。我也不想通过前端代理我的后端调用。我也不想使用nginx,原因是,多了一个POD,还有配置要维护。只是不想因为这个原因而拥有nginx

我应该创建入口吗?我的意思是-

`/`      <-- serves ReactJS app

`/api`   <--- serves REST api

或者有办法注入后端POD的ip?

最好的方法是什么?

提前致谢。

【问题讨论】:

  • 使用完全限定域名而不是静态 IP。将请求发送到后端 API 的 nginx 反向代理怎么样?
  • 在 AWS 上有一个 Kubernetes 服务注释来分配 DNS 名称(通过 Route 53)并将其附加到负载均衡器。我很难找到与 GCP 等效的东西,但这是正确答案的核心。
  • @ImtiazMirza:在 kubernetes 中没有 FQDN。 POD IP 是动态的。唯一可能的方法是服务(我的意思是 LoadBalancer),无论如何它也不是静态的。在发这篇文章之前,我想到了 nginx。但问题是,nginx 意味着多了一个 POD 来部署、维护和配置维护。所以我有点在 Kubernetes 内部寻找解决方案(正如我提到的,可能是 Ingress)
  • @DavidMaze 我在 GCE 上,我的 DNS 也没有在 GCE 上注册。我的 DNS 已在某些本地 IPS 中注册

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


【解决方案1】:

您无法直接从外部访问 pod。唯一的方法是通过LoadBalancer 类型的服务。您为此类服务获得的外部 IP 对于 GKE 是静态的(AWS 提供了 DNS 名称)

对于LoadBalancer 类型的每项服务,云提供商都会启动一个您必须付费的负载均​​衡器。您可以通过单个入口服务汇集所有 http 流量,该服务将根据主机 DNS 或 URI 路径和其他选项扇出您的请求。这几乎是每个人都会做的事情。如果你想为入口设置类似 google 的东西

【讨论】:

  • 请检查我的问题和我提供的图表。我已经知道 LoadBalancers 的工作原理,并且我已经在使用它。
  • 您的图表在我看来是错误的。负载均衡器在 kubernetes 之外。 GKE 根据您在服务描述符中输入的内容为您启动它们这一事实并不重要。如果您知道它是如何工作的,您应该知道 IP 地址是静态的。如果您坚持让您的图表不将负载均衡器移出 GKE 框,您应该为每项服务购买 DNS 条目,并将它们绑定到您从 Google 收到的用于这些服务的 IP,并告诉您的应用将这些 DNS 用于这些服务服务(即使您使用入口,最后一部分也适用)
  • 我认为我的图表没有错。我不确定您对负载均衡器的评论是否在 kubernetes 之外。至少 Kubernetes 规范包括负载均衡器 (kubernetes.io/docs/tasks/access-application-cluster/…)。是的,在云环境中,负载均衡器配置为提供的包,但提供的包仍然遵循 Kubernetes 负载均衡器规范。现在关于购买 DNS 条目,正如我之前在评论中提到的那样,我已经从服务提供商那里获得了 DNS 服务。
  • 我建议使用任一类型:负载均衡器,正如@LevKuznetsov 提到的那样,或者使用 Ingress。如果您使用“LoadBalancer”类型,这将在 Google Cloud Networking 中创建一个网络负载均衡器。如果您使用 Ingress,那么这将在 Google Cloud Networking 中创建一个 HTTP/S 负载均衡器。这是一篇文章,解释了我提到的每种方法的优缺点 (medium.com/google-cloud/…)。您可以选择适合您用例的方法。
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
相关资源
最近更新 更多