如何访问Google Kubernetes中部署的多个服务(Spring Boot应用程序)?

时间:2018-10-29 07:55:45

标签: spring-boot kubernetes google-kubernetes-engine

我创建了2个简单的spring boot应用程序,并通过引用此链接使用docker容器部署在Google Kubernetes中: Deploy spring boot in Kubernetes

现在,当我运行kubectl get services时,我可以看到列出了2个服务(Spring启动应用程序)!

我了解使用暴露可以为服务保留静态IP!但是我需要的是**我需要使用单个IP来访问两项服务**(类似于路由),这样最终用户只需要为多项服务知道一个IP地址即可!我该如何实现?我对此很陌生!请帮助。

2 个答案:

答案 0 :(得分:2)

使用相同的IP地址公开访问服务的最简单方法是使用ingress-controllerIngress资源。这将允许您使用基于dns的主机名和/或路径匹配来单独访问每个服务。

我有一个易于使用的入门资料库,建议您使用它入门。只需运行以下命令:

安装入口控制器:

$ git clone https://github.com/mateothegreat/k8-byexamples-ingress-controller
$ cd k8-byexamples-ingress-controller
$ git submodule update --init

$ make install LOADBALANCER_IP=<your static ip here>

创建您的Ingress资源:

$ make issue HOST=<your dns hostname> SERVICE_NAME=<your service> SERVICE_PORT=<the service port>

您可以根据需要多次重复此最后一步。有关更多信息,请访问https://github.com/mateothegreat/k8-byexamples-ingress-controller

答案 1 :(得分:1)

您可以使用GCE Ingress资源,以便将这两个服务都用作后端。

如上面Patrick的评论中所述,将两个服务都转换为类型:NodePort而不是LB。验证是否已分配节点端口。

kubectl get service web

,然后使用2个主机路径创建入口。

以下documentation将帮助您入门: