如何在Kubernetes中以编程方式获得服务的NodePort?

时间:2017-08-02 10:19:12

标签: kubernetes

我开发了两个网络应用程序(我们称之为A和B)并将它们部署到k8s。 Web应用程序A是指由Web应用程序B生成的图像。在以前的环境中,B具有固定的IP和端口,这使得更容易到达B上托管的图像。

在K8S环境中,我使用服务类型 - NodePort。在这种情况下,每次部署时都会随机生成端口。

问题是是否有办法从A Pod以编程方式获取B服务的节点端口。或者是否可以修复一个服务的节点端口?

1 个答案:

答案 0 :(得分:2)

您的问题有三个答案:

首先,不应仅仅因为重新部署 return result.replaceAll(" ", "&nbsp;").replaceAll("\n", "<br/>"); s而摧毁ServicePod旨在成为长期合同,对服务Service的位置(或计数)进行抽象

第二,如果您希望让网络应用A使用已知的Pod,则可以在NodePort的{​​{3}}字段中添加值在ports:内映射,假设尚未分配,kubernetes将遵循您的判断

第三个答案是,在群集中运行的每个Service都会自动获得一个API令牌,用于与kubernetes API进行通信(它位于Pod或类似),因此您可以从在Pods中为您提供服务的nodePort

的当前值