如何ping我的api,该api在其他命名空间而不是默认的Kubernetes环境中运行。假设我有 pod 在 3 个命名空间中运行 - 默认、开发、生产。我已安装入口负载均衡器并配置了路由。我在访问默认命名空间时没有问题 - https://localhost/myendpoint....但是,如何访问在其他命名空间(例如 dev 或 prod(中运行不同映像版本的 API?是否需要在服务或入口服务文件中添加其他配置?
编辑:我的 pod 是通过 http 请求进行通信的 restful API。我只是在问如何访问在其他命名空间而不是默认命名空间中运行的 pod。部署之间相互通信没有问题。假设我有一个正在运行的前端应用程序,并希望从浏览器访问它,它是如何完成的?我可以通过点击 http://localhost/path 来访问 pod 是否位于默认命名空间中......但是如果我从默认命名空间中删除所有 pod 并将所有服务和 deoloyment 移动到 dev 命名空间中,我将无法再使用相同的 url 从浏览器访问它。它是否有针对不同命名空间(如 http://localhost/dev/path(的特定路径?我需要揣摩它吗
希望它足够清楚。谢谢
使用入口将流量路由到服务
当您想通过Ingress
将来自外部客户端的请求路由到Service
时,您应该将Ingress
和Service
对象放在同一个命名空间中。我建议在Ingress
环境中使用不同的域。
将流量从一个服务路由到另一个服务
当您想要将流量从集群中的 Pod 路由到另一个命名空间中可能Service
时,最简单的方法是将服务发现与 DNS 一起使用,例如将请求发送到:
<service-name>.<namespace>.svc.<configured-cluster-name>.<configured-name>
这是最有可能的
<service-name>.<namespace>.svc.cluster.local