如何最好地利用Kubernetes / minikube DNS进行本地开发[关闭]

问题描述 投票:-1回答:2

我们正在转向使用Kubernetes。通过内置的dns访问k8s部署中的其他已部署服务很简单。因此,如果我有名为app1的pod / service和名为app2的pod / service,而app1需要调用app2,它可以只使用“app2”和k8s dns运行它的魔力,一切正常。这很好,因为我们不需要为所有环境提供app1_host和app2_host的配置mgmt开销。

这也可以使用minikube在本地工作。如果将app1和app2部署到minikube中,他们可以通过服务名称(与应用程序名称匹配)互相引用

但是,我遇到的问题是本地开发。假设我想在本地IDE中使用app1。我可以在minikube中启动app2,但现在如果我想让app1在minikube中访问app2 ...我再也不能使用“app2”了。我必须ping minikube / kubectl api并获取正在运行的IP和端口然后我可以在本地使用...这使我们回到使用HOST / PORT类型配置管理。

我们可以更新/ etc / hosts文件并将app2指向minikube IP,但我仍然需要找出外部/暴露端口是什么。

我们可以使用config mgmt主机/端口,并在启动时从minikube / k8s api动态填充它们。这是推荐的方式吗?有什么东西已经做到了(类似于envconsul)?

是否有一个更好/更优雅的解决方案,当我尝试在IDE中本地工作但是在minikube或k8s中运行相关服务时,我可以利用k8s dns的强大功能?

谢谢

kubernetes minikube kube-dns
2个回答
2
投票

CI/CD Tools

始终在每次代码更改时重新构建和重新部署应用程序:

Hot Reloading Dev Tools

只会关闭已修改的文件并允许您使用热重新加载,例如使用nodemons的nodemon:


1
投票

https://www.datawire.io/products/telepresence/

从他们的网站:

Transparently access other microservices in a remote Kubernetes 
cluster, as well as cloud resources such as AWS RDS. Your code has 
access to the same environment variables and volumes as a regular 
Kubernetes pod.
© www.soinside.com 2019 - 2024. All rights reserved.