如何在其他 namespace 而不是默认名称的kubernetes环境中ping我的api。可以说我有在3个命名空间中运行的Pod-默认,开发,生产。我已经安装了入口负载均衡器并配置了路由。访问默认 namespace -https://localhost/myendpoint ...没有问题。但是如何访问在其他 namespace (例如dev或prod)中运行不同镜像版本的api?我是否需要在服务或入口服务文件中添加其他配置?
编辑:我的 pod 是 Restful api,可通过http请求进行通信。我要问的是如何访问在其他命名空间(而不是默认名称)中运行的Pod。部署之间相互通信没有问题。假设我有一个前端应用程序正在运行,并且想从浏览器访问它,它是如何完成的?我可以通过按http://localhost/path来访问Pod是否在默认 namespace 中...但是如果我从默认 namespace 中删除所有Pod并将所有服务和deoloyments移至dev namespace ,则无法再使用相同的URL从浏览器访问它。它是否有针对http://localhost/dev/path等不同 namespace 的特定路径?我需要弄清楚它吗
希望它已经足够清楚了。谢谢
最佳答案
使用Ingress将流量路由到服务
当您希望通过Ingress
将外部客户端的请求路由到Service
时,应将Ingress
和Service
对象放在同一 namespace 中。我建议在Ingress
中为环境使用不同的域。
在服务之间路由流量
如果您想将流量从群集中的Pod路由到另一个命名空间中的Service
,则最容易使用Service Discovery with DNS,例如发送请求至:
<service-name>.<namespace>.svc.<configured-cluster-name>.<configured-name>
这很可能
<service-name>.<namespace>.svc.cluster.local
关于kubernetes - 在其他 namespace 中运行的kubernetes环境中的Ping API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58982712/