首页 > 解决方案 > 是否可以使用不同的 url 访问 kubernetes 服务?

问题描述

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

是否有可能将 url/media/images/...解析为http://myservice/media/images/...特定 kubernetes pod 中的 url?

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

标签: kubernetesnetworking

解决方案


回答以下问题:

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

简而言之,没有

看看下面的例子:

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

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

您可以按照以下文档阅读有关如何Pods相互通信的主题的更多信息:


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


更清楚地了解在问题下提出的有用评论:

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

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


其他资源:

边注!

至于:

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

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


推荐阅读