1.问题a
描述:
公司产品是基于虚机进行单机或者集群部署,需要改造成在rancher平台上容器化部署,各个服务注册到zk上使用的是容器系统中的ip,注册到kong网关上使用的对应的主机ip加端口。在证书激活之前需要获取集群对应的sid信息,获取sid信息的接口非常慢,大约60s,而且多次失败。
解决:
获取sid非常慢,是因为生成sid会通过zk各个服务节点信息访问各个服务节点,所以查找各个服务节点,修改对应服务pod的副本数,发现有一个不是生产环境服务,是对应服务的zk配置配置错误,把对应的服务取消注册到生产zk,获取正常。
2.问题b
描述:
用户登录之后会闪退
解决:
查看登录页面请求的所有url,发现登录接口200成功,到请求计量计费服务时候报401错误,确认token信息是有携带的,使用postman调用也是401错误,也就是说token信息有问题,但请求别的服务是没有问题的,我们是使用redis做token共享的,也就是计量计费的redis不能正常获取token信息,那么可能是计量计费服务redis配置错误,要么是redis集群有问题,但只要计量计费服务有问题,应该是配置有问题,运维同事检查配置,确实是配置错了。
3.问题c
描述:
产品之前部署都是基于虚机部署,容器化部署各个服务后,服务自动注册到kong网关上,这样做在容器化部署存在不可用情况,产品各个服务在启动时候会自动将自身信息写到kong api网关上,容器扩容与伸缩之后,地址发生变化后,原有注册到kong api上的路由信息不会删除,就导致访问kong找对应的服务会找不到对应的服务,导致报错。
解决:
关闭各个服务自动注册到kong,手动将服务注册到kong网关上,手动注册到kong使用主机的ip和端口,调度交由k8s管理。