k8s 使用nacos集群(ktctl本地联调)
场景公司使用k8s环境,nacos替代之前的eureka,刚开始使用的是2.0.2版本,ktctl用于打通本地环境和研发的k8s环境,部署之后出现的很多问题。nacos版本问题1.nacos 2.0x开始使用grpc作为客户端和服务端通信的方式,但是ktctl目前不支持grpc,会出现:unexpected stock version67并且使用springcloud alibaba版本中naco
场景
公司使用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可以进行访问。
更多推荐
所有评论(0)