如何在应用程序内部使用Kubernetes Pod或部署IP

时间:2018-10-18 10:27:28

标签: docker kubernetes docker-compose dockerfile

我刚刚尝试在裸机上设置kubernetes,

以前,我已经成功创建了docker compose

有几个应用程序:

  • 应用程序A(docker映像名称:a-service)
  • 应用B(docker映像名称:b服务)

在应用程序A和B中都有配置(实际上有应用程序A,B,C,D等很多em)

配置文件是这样的

IPFORSERVICEA=http://a-service:port-number/path/to/something
IPFORSERVICEB=http://b-service:port-number/path/to/something

至少以上配置工作在docker compose中(该配置位于应用程序级别内,需要访问其他应用程序)。我是否有机会从其他服务访问另一个Kubernetes服务?我打算在1个部署中创建1个应用,并为每个部署创建1个服务。

类似的东西:

App -> Deployment -> Service(i.e: NodePort,ClusterIP)

谢谢!

2 个答案:

答案 0 :(得分:1)

  

我是否有机会从那里访问另一个Kubernetes服务   另一项服务?

是的,您只需要指定DNS服务名称(taskkill /im AcroRd32.exe /f 可以正常工作),您需要以以下方式连接:

type: ClusterIP

在这种情况下,这样的域名将被正确解析为您需要使用内置DNS连接到的服务的内部IP地址。

例如:

<service_name>.<namespace>.svc.cluster.local

其中nginx-service.web.svc.cluster.local -服务名称,nginx-service-是应用程序的名称空间,因此服务yml定义如下:

web

请参阅official docs,以获取更多信息。

答案 1 :(得分:1)

使用Kubernetes service discovery

  

服务发现是弄清楚如何连接到网络的过程。   服务。虽然有一个基于的服务发现选项   环境变量可用时,基于DNS的服务发现是   更好。请注意,DNS是群集附件,因此请确保您的   Kubernetes发行版提供一个或自己安装。

Service dicovery by example