我有一个应用程序在kubernetes
我自己的服务器上运行。该应用程序应该作为网关工作,并具有LoadBalancer
服务,将其暴露给世界"。现在,我想将此应用程序与在同一kubernetes cluster
内运行的其他应用程序相关联,以便他们可以相互交换HTTP requests
。
所以,让我们说我的网关应用程序正在端口9000
上运行,我想要调用的应用程序在9001
上运行。当我curl my_cluster_ip:9001
时,它会给我一个回复。然而,我永远不知道Cluster IP
会是什么,所以我无法将其实现到我的网关应用程序。
用例正在键入网络浏览器url_of_my_server:9000
- >这将调用网关 - >它将HTTP Request
发送到端口9001
上的群集中运行的其他应用 - >响应回网关 - >回复给用户。
魔法必须发生的地方以及如何轻松地使这两个应用程序相互交谈,而只有一个应用程序将被暴露于世界"另一个只能从集群内访问?
答案 0 :(得分:1)
您可以将您的应用在端口9001上公开为服务(假设为myservice
)。
执行此操作时,myservice.<namespace>.svc.cluster.local
将解析为您的应用的IP地址。有关DNS的更多信息:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
然后您可以在Kubernetes群集中访问您的应用:
http://myservice.<namespace>.svc.cluster.local:9001
答案 1 :(得分:1)
您有几个内部服务发现选项:
另请注意,Kubernetes中已存在对HTTP代理设置的支持;看看Ingress和Ingress Controllers。