云原生时代如何方便的进行本地调试
云原生的四要素:持续交付、DevOps、微服务、容器,虽然极大的解放了生产力,但是不可避免的也带来了诸多问题,本文不做延伸,感兴趣的,可以自行百度。
本文只为解决微服务(本文以Spring Cloud为例)+Kubernetes开发调试低效问题。
telepresence
如果团队内成员都有k8s基础,并且都用win10或者linux,macos,那建议直接用telepresence,简单直接。详见 Fast development workflow with Docker and Kubernetes,A development workflow for Kubernetes services
Service映射
如果团队内k8s基础弱,或者硬件条件不满足,可以使用Service映射方案,在k8s集群里创建一个Service和Endpoint,然后进行绑定。但是适用于单向的,比如,k8s访问外部mysql,如果要逆向访问,不好意思,不支持。
静态路由
TDD
如果团队对于单院测试和Mock掌握的比较好,可以直接开启TDD模式,省事省心
远程调试
k8s集群暴露远程调试接口。Remote debugging Spring Boot on Kubernetes
开发机纳入集群
应用发到本地pod里,省的走cicd那么费劲了
热部署
开发机纳入集群后,把target\class挂载到本地卷,并且配置上rebel.xml,idea build后生成class,然后pod里触发jrebel的热部署。 参考 www.telepresence.io/tutorials/j…