我创建了2个简单的spring boot应用程序,并通过引用此链接使用docker容器部署在Google Kubernetes中: Deploy spring boot in Kubernetes
现在,当我运行kubectl get services
时,我可以看到列出了2个服务(Spring启动应用程序)!
我了解使用暴露可以为服务保留静态IP!但是我需要的是**我需要使用单个IP来访问两项服务**(类似于路由),这样最终用户只需要为多项服务知道一个IP地址即可!我该如何实现?我对此很陌生!请帮助。
答案 0 :(得分:2)
使用相同的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>
创建您的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将帮助您入门: