阿里云首页

通用方案:飞天nuwa容器中切换leader角色的方法

1. 概述

本文主要介绍在专有云环境中,飞天nuwa容器中切换leader角色的方法。

方案总览

类别 内容
国产化
风险等级(方案执行的影响)
操作方式 黑屏
操作复杂度
预估执行时长 1小时
客户业务的影响
可监控性 不支持
有效性(重启、重拉、补丁、升级、扩容等配置是否丢失) 临时
数据修订(变更是否涉及增删改操作)
执行灰度策略 请向产品侧咨询,明确灰度策略
首次发布时间 N/A
预计完成时间 N/A

1.1. 适用范围

  • 专有云版本:V2.*,V3.*
  • 产品:女娲

1.2. 风险说明

操作过程中nuwa容器的leader角色会发生切换,即会有几秒钟无法服务,但不影响上层应用,有自动重试机制,其风险是可控的。

1.3. 用户告知

  • 需确认在女娲服务正常运行的情况下进行切换。
  • 在专有云V2环境中,确认AG节点与三个nuwazk节点开启SSH免密登录。
  • 在专有云V3环境中,确认nuwatool节点与三个nuwazk节点开启SSH免密登录。

2. 问题描述

在专有云环境中,nuwa以容器形式存在,由于业务原因需要修复容器的宿主机,此时需切换容器的leader角色。

3. 解决方案

3.1. 环境检查

请根据不同专有云使用环境,进行以下环境检查:

专有云V2环境中确认女娲服务正常

说明:以ODPS集群为例进行操作。

  1. 登录DMSAG机器,执行以下命令,进入指定目录。
    cd /apsarapangu/disk2/L1root/L1tools/main/config
  2. 执行以下命令,查询并记录指定集群在container_arrangement.csv表中的AG容器IP。
    cat container_arrangement.csv | grep odps | grep -w ag | awk -F ',' '{print $4}'
    说明:系统返回的信息就是对应服务apsara_ag容器的IP。
  3. 执行如下命令,登录指定集群的AG容器。
    ssh [$Apsara_IP]
    说明:[$Apsara_IP]为上一步获取的AG容器IP。
  4. 执行以下命令,切换到admin用户。
    su - admin
  5. 将以下巡检脚本文件上传到/home/admin目录中。
    nuwa_service_checker.py
  6. 依次执行以下命令,若Result输出为“Nuwa Service OK”,则说明服务正常。
    cd /home/admin
    /home/tops/bin/python nuwa_service_checker.py
    系统显示类似如下。
  7. 若环境无法运行巡检脚本文件,则依次执行以下命令,Mode输出为“Leader”或者“Follower”,则说明表示角色正常。
    me|grep Local_nuwa|awk '{print $2}'|tr '|' '\n' > /tmp/iplist.nuwa
    pssh -i -h /tmp/iplist.nuwa "echo srvr | nc localhost 10240 | grep Mode"
    说明:iplist.nuwa为nuwazk节点的IP列表文件。
    系统显示类似如下,记录获取的leader角色的IP地址。

 

专有云V3环境中确认女娲服务正常

说明:以ODPS集群为例进行操作。

  1. 登录天基控制台,在Project框中搜到odps,单击集群右侧的集群运维中心,选择nuwa服务和NuwaTools#服务角色,单击机器右侧的Terminal,登录对应的机器。
  2. 将以下巡检脚本文件上传到/home/admin目录中。
    nuwa_service_checker.py
  3. 切换到admin用户,执行以下命令。
    /home/tops/bin/python nuwa_service_checker.py
    系统显示类似如下,即Result输出为“Nuwa Service OK”,则说明服务正常。
  4. 若环境无法运行巡检脚本文件,则依次执行以下命令,Mode输出为“Leader”或者“Follower”,则说明角色正常。
    tj_show -r nuwa.NuwaZK# -ip > /tmp/iplist.nuwa
    pssh -i -h /tmp/iplist.nuwa "echo srvr | nc localhost 10240 | grep Mode"
    说明:iplist.nuwa为nuwazk节点的IP列表文件。
    系统显示类似如下,记录获取的leader角色的IP地址。

3.2. 实施步骤

请参见以下操作进行切换操作:

开启实时监控

以下步骤均在专有云环境中集群的飞天AG容器中执行,需切换到admin用户。

说明:可创建多个窗口执行本节涉及的操作,实时监控服务状态。

  1. 执行以下命令,实时监控女娲服务状态。
    for ((;;)); do date +"%Y/%m/%d %H:%M:%S"; /home/tops/bin/python /apsara/deploy/nuwa_migration_monitor.py -ip /tmp/iplist.nuwa; sleep 60; done
    说明:iplist.nuwa为nuwazk节点的IP列表文件。
    系统显示类似如下。
  2. 执行以下命令,实时监控女娲服务状态。
    for ((; ; )) do date +"%Y/%m/%d %H:%M:%S"; /apsara/deploy/nuwa_resolver --nuwa_address=nuwa://localcluster/sys/pangu/master;/apsara/deploy/nuwa_console --address=nuwa://localcluster/sys/pangu/master; sleep 0.2; done
    系统显示类似如下。

切换leader角色

  1. 参考环境检查中获取的leader角色的nuwa节点IP地址,登录该节点。
  2. 执行以下命令,重启nuwa进程触发切换。
    sudo pkill -f /apsara/nuwa/java4zk

3.3. 结果验证

参考环境检查,确认leader角色已切换为其他节点。

4. 回滚方案

切换后的角色为自动选举生成,无法进行回滚操作。

 

首页 通用方案:飞天nuwa容器中切换leader角色的方法