【发布时间】:2020-07-04 08:13:21
【问题描述】:
我们正在使用k8s来部署我们的应用程序,它工作得很好。但是有一个小问题。我们已经从http层通信转移到tcp层。不同微服务之间的通信是通过服务(k8s服务)名称并且效果很好,但是开发人员无法在本地测试相同的代码,因为服务名称将仅在集群内解析。所以这里有一些我有的解决方案:-
1. 为他们提供不同的命名空间,让他们可以通过小的更改来测试应用程序。
这样做的问题是开发人员使用了一些断点并在代码中测试了一些小的更改,并通过这种方法进行调试。
2.他们可以在本地实现 minikube,但这对我来说也不好。
3.他们可以在本地运行ms的容器,并在/etc/hosts中输入与k8s服务名称相对应的容器ip。在此相同的代码将起作用。 欢迎任何其他更好的解决方案。 ??????????????????
【问题讨论】:
-
你用哪个java框架做微服务开发? spring-boot 或类似的,最合适的答案也取决于它。
-
使主机名可配置是个好主意。如果它们是环境变量,它们很容易在命令行或 Kubernetes YAML 文件中进行更改。
-
使用@Avnish Spring boot 框架。
-
@DavidMaze 感谢您的快速响应。如果没有其他解决方案将使用此救世主。
标签: java kubernetes deployment web-applications automation