nacos版本升级和开启权限认证配置(1.3.2—2.0.3)
Posted 一夜暴富--gogogo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos版本升级和开启权限认证配置(1.3.2—2.0.3)相关的知识,希望对你有一定的参考价值。
一、测试环境单节点升级
1.先将nacos yaml文件备份一下
下载新版本包
https://github.com/alibaba/nacos/releases
2.解压包
tar xvf nacos-server-2.0.3.tar.gz -C /data/ota_soft/nacos-2.0.3/
3.停止旧的nacos,将旧版nacos目录做备份
cd /data/ota_soft/nacos/bin
sh shutdown.sh
cd /data/ota_soft/
cp -a nacos nacos.bak
4.将解压出的bin conf target 目录覆盖原先新旧版本的安装目录下,修改配置文件application.prpperties 数据库配置
cp -a /data/ota_soft/nacos-2.0.3/nacos/bin/* /data/ota_soft/nacos/
cp -a /data/ota_soft/nacos-2.0.3/nacos/conf/* /data/ota_soft/nacos/
cp -a /data/ota_soft/nacos-2.0.3/nacos/target/* /data/ota_soft/nacos/
vim /data/ota_soft/nacos/conf/application.prpperties
5.启动nacos(还在旧的安装目录,因为bin conf target已替换过)
sh start.sh
首先查看nacos目录下 logs/start.out或logs/nacos.log 观察到nacos启动成功的日志,如 Nacos started successfully in cluster mode. use xxx storage 说明程序已启动成功。
之后在观察 logs/naming-server.log 中,可以看到有upgrade check result false 以及 Check whether close double write等日志信息。
二、nacos集群升级
以上操作一致,在nacos其中一个节点操作
升级其他节点
待该节点的服务及实例信息已经同步完毕后(可从控制台进行确认)。重复上述操作
确认升级完成
当集群中最后一个节点也升级到2.0.X版本时,集群会开始进行升级检测。每个节点会对该节点的服务信息和实例信息进行校验,并检测是否还有未完成的双写任务。
当该节点的服务信息和实例信息已经核对成功,并且没有双写任务存在时,该节点会判定自己已经做好升级准备,并修改自己的状态且通知其他Nacos节点。每台节点是否完成升级准备可以从控制台的集群管理中元数据信息中看到"readyToUpgrade": false/true。
当集群中所有节点均判定为准备完毕时。Nacos集群中的节点会进行升级切换,自动升级到Nacos2.0的处理逻辑。
可以从logs/naming-server.log日志中观察到upgrade check result true及Upgrade to 2.0.X。
关闭双写
当集群升级完成后,可以先观察一段时间运行情况,当确认无误后,可以关闭双写,从而释放性能,具体的关闭方式是通过API进行:
curl -X PUT ‘localhost:8848/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false’
关闭后可以从logs/naming-server.log日志中观察到Disable Double write, stop and clean v1.x cache and features字样。说明关闭双写。
注意,关闭双写后无法在进行平滑降级,请先确认关闭前集群正确运行。
降级
集群升级完毕后,依旧会进行双写,当升级后发现Nacos2.0存在问题时,可以快速进行降级,降级流程为重复上述升级步骤,需要把配置替换为旧版本的配置文件
当第一台降级完成后,集群即可观察到logs/naming-server.log 中的upgrade check result false ,且控制台集群管理中,所有新版本"readyToUpgrade": false。
三、nacos开启权限认证
修改nacos配置文件
nacos.core.auth.enabled=true
这个时候再访问nacos页面,则会直接报错。
因此,还需要再设置两个属性(数值可以随便填)。
nacos.core.auth.server.identity.key=authKey
nacos.core.auth.server.identity.value=nacosSecurty
这两个属性是auth的白名单,用于标识来自其他服务器的请求。
添加好这两个属性时页面就能正常访问了。
还需要再其他服务的配置文件中加上如下配置。(修改代码方式)注意:密码不要有特殊符号不然会报错
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=nacos
以上是关于nacos版本升级和开启权限认证配置(1.3.2—2.0.3)的主要内容,如果未能解决你的问题,请参考以下文章
问题篇整改Nacos漏洞——升级Nacos以及开启鉴权问题整理
等保整改之开启Nacos认证-漏扫发现我们使用Nacos时存在未授权访问的漏洞