【问题标题】:Is it possible to access a kubernetes service with a different url?是否可以使用不同的 url 访问 kubernetes 服务?
【发布时间】:2021-05-31 21:54:30
【问题描述】:

当您创建一个名为 myservice 的 kubernetes 服务时,您可以在您的 pod 中使用如下 URL 访问该服务:http://myservice/media/images/...

是否可以在特定的 kubernetes pod 中将/media/images/... 之类的网址解析为http://myservice/media/images/... 之类的网址?

例如,假设我们有一个名为“podA”的 pod。 “podA”中的容器是否可以使用/media/images/... 之类的网址而不是http://myservice/media/images/... 之类的网址发送GET 请求?

【问题讨论】:

  • 仅路径 URL 通常根据某个基本 URL 进行解析,并从该基本 URL 继承主机名;您的“podA”代码如何知道该基本 URL 是什么?您能否提供更具体的代码来演示您需要什么以及为什么要省略 URL 的主机名部分?
  • @DavidMaze 谢谢大卫!我实际上正在尝试解决这个问题:stackoverflow.com/questions/66424941/…
  • 您好,我确实需要同意 David Maze 的评论。从纯 Kubernetes 的角度来看,这是不可能的。您需要向请求内容的Pod 提供某种类型的base_url

标签: kubernetes networking


【解决方案1】:

回答以下问题:

是否可以在特定的 kubernetes pod 中将 /media/images/... 之类的 url 解析为 http://myservice/media/images/... 之类的 url?

简而言之,没有

看看下面的例子:

http://awesomeservice/folder/sample.txt
\__/   \_______________/\_______/
 |            |             |
protocol  service name    path to 
                          resource 

当您尝试发送针对特定资源的 Web 请求(来自您的 Kubernetes Pod)时,您需要拥有一个主机部分。如果您尝试这样:/media/images/...,您将告诉您的操作系统/软件/应用程序您需要来自本地文件系统的资源。

您可以阅读更多关于Pods 如何相互通信的主题,请遵循此文档:


作为一种解决方法,可以访问/media/images/... 等路径上的资源,您可以配置将安装到您的/media 目录的存储解决方案。有多种方法可以实现这一点,您需要参考特定的解决方案文档(在本地和云管理的 Kubernetes 集群中会有所不同)。作为起点/基线,您可以查看:


更清楚地了解问题下的有用 cmets:

仅路径 URL 通常根据某个基本 URL 进行解析,并从该基本 URL 继承主机名;您的“podA”代码如何知道该基本 URL 是什么?您能否提供更具体的代码来演示您需要什么以及为什么要省略 URL 的主机名部分? – 大卫迷宫

从纯粹的 Kubernetes 角度来看,这是不可能的。您需要向请求内容的Pod 提供某种类型的base_url。 ——戴维·克鲁克


其他资源:

旁注!

至于:

是否可以在特定的 kubernetes pod 中将 /media/images/... 之类的 url 解析为 http://myservice/media/images/... 之类的 url?

如果您正在考虑将请求发送到特定 Pod,您可以查看:

【讨论】:

    猜你喜欢
    • 2021-02-03
    • 2017-04-30
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2021-06-15
    相关资源
    最近更新 更多