kubernetes - 在其他 namespace 中运行的kubernetes环境中的Ping API

标签 kubernetes kubernetes-ingress kubernetes-pod

如何在其他 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时,应将IngressService对象放在同一 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/

相关文章:

elasticsearch - 没有为弹性生成外部IP

Kubernetes:无法更改部署策略

java - Dockerized Spring Boot 应用程序不使用挂载的 Kubernetes ConfigMap (application.properties)

kubernetes - 如何在 kubernetes 集群中运行 https 安全应用程序

linux - Kubernetes Pod 终止 - 退出代码 137

kubernetes - Kubernetes:经常获得 “Error adding network: no IP addresses available in network: cbr0”

kubernetes - helm 双引号注释值

kubernetes - 阻止 namespace 之间的访问,但允许访问外部流量

kubernetes - 获取 "CrashLoopBackOff"作为已部署 pod 的状态

docker - 在不使用任何公共(public)/私有(private) docker 注册表的情况下创建 kubernetes pod