k8s内网和办公网络的打通实践
· 阅读需 8 分钟
背景
近期工作中出现了一个问题:某个旧服务中用到了redis,但是在前期项目容器化改造部署阶段研发同事并没有说明需要用到redis,直至部署生产prod环境出现问题。
那么疑问来了,为什么在qa环境没有问题呢?经沟通排查发现,源码中也就是qa环境连接的是一个古老的虚拟机运行的redis,所以自然研发测试环境都没问题,至于为什么会连接到这个地址,不得而知!
第一想法:关掉这个redis服务,让研发“被迫”主动告知;规范要求,在k8s集群内部部署该项目的redis服务集群,保证环境一致性,减少不必要麻烦。
项目多数属于微服务应用模块,研发本地无法完整运行全部依赖,希望在本地运行某个服务后,能够注册到qa容器环境的依赖服务中进行调试。
例如在k8s中运行的redis、rabbitmq等服务,研发在当前环境下无法直接通过客户端工具连接进行访问,给研发测试进行联调带来了很大麻烦,且k8s内部通过cni插件创建pod和service的内部网络,这类服务无法通过ingress进行7层暴露,如果通过NodePort模式暴露给研发,不仅使用有限而且会导致端口管理困难从而工作量加大。因此打通开发和测试环境k8s集群内网和办公局域网络是有很大必要性的。