Docker 使用Kubernetes为外部应用程序提供服务IP和端口发现

Docker 使用Kubernetes为外部应用程序提供服务IP和端口发现,docker,kubernetes,dns,Docker,Kubernetes,Dns,我正在创建一个必须通过RESTAPI与Kubernetes服务通信的应用程序。该服务承载一个docker映像,该映像在端口8080上侦听,并用JSON主体进行响应 我注意到,当我通过- kubectl expose deployment myapp --target-port=8080 --type=NodePort --name=app-service 然后创建一个名为app service的服务 为了在本地进行测试,我通过- minikube service app-service --u

我正在创建一个必须通过RESTAPI与Kubernetes服务通信的应用程序。该服务承载一个docker映像,该映像在端口8080上侦听,并用JSON主体进行响应

我注意到,当我通过-

kubectl expose deployment myapp --target-port=8080 --type=NodePort --name=app-service
然后创建一个名为app service的服务

为了在本地进行测试,我通过-

minikube service app-service --url
我正在使用minikube进行本地开发工作。然后我得到一个响应,比如当我进入我的浏览器时,它工作正常,我得到了我期望的JSON响应

然而,每当我启动此服务时,该服务的IP和端口似乎总是不同的

这就引出了我的问题——如果一个移动应用程序可能会发生变化,那么它应该如何找到新的IP:Port呢?通过DNS服务器(如谷歌云的DNS系统)注册该组合是解决这一问题的常用方法吗

还是说我在建立Kubernetes公共服务方面错过了一步

这就引出了我的问题——如果一个移动应用程序可能会发生变化,那么它应该如何找到新的IP:Port呢


minikube并非用于生产用途。它只用于发展目的。您应该创建一个真正的kubernetes集群,并使用类型服务或for L7流量将您的服务公开给外部世界。因为您需要公开后端RESTAPI,所以入口是一个不错的选择

让我们假设我使用了入口,并获得了一个外部IP地址。为查找该IP地址,建议使用什么路径绑定我的应用程序?我是否应该使用DNS系统将该IP地址映射到特定的URL,并将我的应用程序调用映射到该URL?是的。您需要将后端托管在您自己的域上。然后,您的应用程序可以使用fqdn连接到后端。是的,这涉及到设置适当的DNS条目。