场景

公司使用k8s环境,nacos替代之前的eureka,刚开始使用的是2.0.2版本,ktctl用于打通本地环境和研发的k8s环境,部署之后出现的很多问题。

nacos版本问题

1.nacos 2.0x开始使用grpc作为客户端和服务端通信的方式,但是ktctl目前不支持grpc,会出现:
unexpected stock version 67
并且使用springcloud alibaba版本中nacos也是1.2.1;所以,nacos需要回退到1.2.1;

mysql8.0问题

研发本地使用mysql5.7,生产进行了升级:mysql8.0;
在本地正常使用的nacos,在生产环境会无法启动,原因是:数据源无法创建,5.7和8.0的mysql jar包有改变;解决方案是:

k8s使用nfs挂载方式把mysql的jar包挂载到: /home/nacos/plugins目录下,nacos在启动的时候,会自动加载该目录的jar(nacos留的后门);

ktctl问题

ktctl的问题除了不支持grpc,当前也不支持headless服务,因为它没有ip,无法进行转发。
当前的解决方案是:新建一个service,使用cluster ip把端口映射出来,然后对照nacos的默认端口:8848;然后服务中使用新建的service可以进行访问。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐