Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何访问google Kubernetes中部署的多个服务(Spring boot app)?_Spring Boot_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

Spring boot 如何访问google Kubernetes中部署的多个服务(Spring boot app)?

Spring boot 如何访问google Kubernetes中部署的多个服务(Spring boot app)?,spring-boot,kubernetes,google-kubernetes-engine,Spring Boot,Kubernetes,Google Kubernetes Engine,我创建了2个简单的spring boot应用程序,并通过引用以下链接在Google Kubernetes中使用docker容器进行部署: 现在,当我运行kubectl get services时,我可以看到列出了2个服务(Spring boot应用程序) 我知道使用expose可以为服务保留静态IP!但我需要的是**我需要使用单个IP访问两个服务**(类似于路由),这样最终用户只需要知道多个服务的一个IP地址!我怎样才能做到这一点?我对这个很陌生!请帮忙 使用相同的IP地址公开访问您的服务的最

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

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


我知道使用expose可以为服务保留静态IP!但我需要的是**我需要使用单个IP访问两个服务**(类似于路由),这样最终用户只需要知道多个服务的一个IP地址!我怎样才能做到这一点?我对这个很陌生!请帮忙

使用相同的IP地址公开访问您的服务的最简单方法是使用
ingress controller
ingress
资源。这将允许您使用基于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>

您可以根据需要多次重复最后一步。有关更多信息,请访问。

您可以使用GCE入口资源,以便两个服务都用作后端

正如Patrick在上面的评论中提到的,将两个服务转换为type:NodePort而不是LB。验证是否分配了节点端口

kubectl获取服务网站

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


以下内容将帮助您入门:

LOADBALANCER\u IP=这里我应该授予静态IP权限?但我有2个spring boot应用程序作为服务,每个都有静态IP,我应该拥有哪些IP?应用程序的行为类似于RESTAPI。我只有IP没有DNS名称,所以我应该在HOST=“?”中给出什么?好的,在这种情况下,只需将服务的类型设置为
type:LoadBalancer
我将部署公开为LoadBalancer。但是我如何使用一个IP地址将请求路由到两个服务呢?您可以使用一个具有多个端口的服务。然后,您可以确保您的两个部署吊舱具有与服务相同的标签,并且您将能够通过相应的端口分别访问您的服务。将两个服务更改为“type:NodePort”,而不是LoadBalancer(kubectl edit svc[服务名称]),然后,您可以使用yomateo提到的单个IP使用入口资源进行配置。您不能使用两个单独的资源并为它们分配一个静态IP,GCP不允许这样做
$ make issue HOST=<your dns hostname> SERVICE_NAME=<your service> SERVICE_PORT=<the service port>