Kubernetes-一个服务可以使用另一个服务,而无需我用前者的代码编写后者的IP吗?

时间:2019-06-07 23:39:10

标签: kubernetes

在以下指南中: https://www.freecodecamp.org/news/learn-kubernetes-in-under-3-hours-a-detailed-guide-to-orchestrating-containers-114ff420e882/

体系结构如下所示: enter image description here

前端(由SA前端提供服务)将请求发送到SA-WebbApp。 在开发环境中,我相信两者都可以在localhost的不同端口上运行,但是在生产中,如指南的底部所示,我们必须实现SA-WebApp的IP地址:

minikube service list
|-------------|----------------------|-----------------------------|
|  NAMESPACE  |         NAME         |             URL             |
|-------------|----------------------|-----------------------------|
| default     | kubernetes           | No node port                |
| default     | sa-frontend-lb       | http://192.168.99.100:30708 |
| default     | sa-logic             | No node port                |
| default     | sa-web-app-lb        | http://192.168.99.100:31691 |
| kube-system | kube-dns             | No node port                |
| kube-system | kubernetes-dashboard | http://192.168.99.100:30000 |
|-------------|----------------------|-----------------------------|

编辑前端代码以使用它:

analyzeSentence() {
        fetch('http://192.168.99.100:31691/sentiment', { /* shortened for brevity */})
            .then(response => response.json())
            .then(data => this.setState(data));
    }

然后重建静态文件,重建Docker映像,将其重新推送到集线器,编辑前端的部署Yaml并在其上执行kubectl apply -f

有什么方法可以使前端从某种配置/发现中获取IP,而不是由我手动插入并重建整个东西吗?

1 个答案:

答案 0 :(得分:0)

社区成员Amit Kumar GuptaDavid Maze所提及,请参阅:

  1. DNS for Services and Pods
  2. Connecting Applications with Services
  3. 您在Kubernetes in Practice — Services部分中的指南。您的示例中有两个主题:
    • 将标签应用于我们希望我们的服务定位的所有广告连播,并且
    • 在我们的服务中应用“选择器”,以便定义要定位的标记豆荚。