服务容器化以后遇到的性能排查的一些坑
由于公司的采用K8S管理的微服务架构,所以说排查问题的方式和以前直连Linux服务器有些不同,故在此记录一下最近遇到的坑。
1、部署流程
首先是要将自己的代码打包,然后把依赖包一起打成镜像
然后上传到公司平台的镜像仓库
最后通过设置配置,发布镜像,K8S自动启动节点生成容器启动服务。
2、一些问题
(1)、不可直连
这里就有个问题,由于K8S集群是在独立的内网中运行的,有自己的DNS和网关,自动化的管理pod节点,导致以前通过XShell连接linux服务器的方式行不通,因为我们部署的微服务都先通过传服务名,然后网关服务从内部的注册中心拿到对应的内部的ip地址转发http请求,请求服务的
这中间就有一个网关在,从外面不可能直接访问服务。
(2)、容器地址变动
由于K8S的自动化治理节点,导致会出现服务挂掉后在其他地址重启服务的情况,不能保证服务的启停后,服务下次是在以前的地址,导致就算能直连服务也不方便,容器一旦因为OOM等原因自动重启后,不可预测他接下来会出现在哪里,并且又是一个新的容器不会保存旧容器的状态,所以说微服务必须要做成无状态的,通过挂载存储卷的方式才能保存数据