更新时间:2025-01-10 GMT+08:00
分享

准备工作

当您首次使用华为云时注册的账号,则无需执行该准备工作,如果您使用的是IAM用户账户,请确认您是否在admin用户组中,如果您不在admin组中,则需要为您的账号授予相关权限,并完成以下准备工作。

创建rf_admin_trust委托(可选)

  1. 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开统一身份认证菜单。

    图1 控制台管理界面
    图2 统一身份认证菜单

  2. 进入委托菜单,搜索“rf_admin_trust”委托

    图3 委托列表
    • 如果委托存在,则不用执行接下来的创建委托的步骤
    • 如果委托不存在,则需执行以下步骤创建委托

  3. 单击步骤2界面中的创建委托按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务,选择“RFS”,单击下一步”。

    图4 创建委托

  4. 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果,单击“下一步”

    图5 选择策略

  5. 选择所有资源,并单击“下一步”完成配置

    图6 设置授权范围

  6. 委托列表中出现“rf_admin_trust”委托则创建成功

    图7 委托列表

客户源端配置(region:上海一 模拟客户源端)

  1. 购买Flexus X实例:访问Flexus云服务器X实例控制台,参考购买Flexus X实例教程,按如下配置购买X实例。

    表1 X实例相关配置

    资源类型

    资源数量

    配置

    示例说明

    虚拟私有云VPC和子网

    1

    • IPv4网段:172.16.0.0/24
    • 子网IPv4网段:172.16.0.0/24

    详见创建虚拟私有云和子网指南。

    弹性云服务器ECS

    2

    • 按需计费
    • 区域:华东-上海一

      规格:性能模式(关闭)| 2核 | 4 GB

    • 镜像:CentOS 7.9 64bit
    • 系统盘:通用型SSD | 40GB

    本示例中,需要两个ECS作为主备倒换,配置说明如下:

    • 名称:本示例分别为Flexus-X-HA1Flexus-X-HA2
    • 安全组:本示例中Flexus-X-HA1Flexus-X-HA2使用同一个安全组。

    私有IP地址:Flexus-X-HA1172.16.0.127Flexus-X-HA2172.16.0.97

    弹性公网IP

    2

    线路:全动态BGP

    公网带宽:按流量计费

    带宽大小:300Mbit/s

    本示例中EIP11.94.xxx.236EIP2115.120.xxx.252

    表2 安全组配置

    方向

    策略

    类型

    协议端口

    源地址/目的地址

    描述

    入方向

    允许

    IPv4

    TCP: 22

    源地址:0.0.0.0/0

    放通安全组内ECSSSH(22)端口,用于远程登录Linux ECS

    入方向

    允许

    IPv4

    TCP: 80

    源地址:0.0.0.0/0

    放通安全组内ECSHTTP(80)端口,用于外部通过HTTP协议访问ECS上部署的网站。

    入方向

    允许

    IPv4

    全部

    源地址:当前安全组

    针对IPv4,用于安全组内ECS之间网络互通。

    入方向

    允许

    IPv6

    全部

    源地址:当前安全组

    针对IPv6,用于安全组内ECS之间网络互通。

    出方向

    允许

    IPv4

    全部

    目的地址:0.0.0.0/0

    针对IPv4,用于安全组内ECS访问外部,允许流量从安全组内ECS流出。

    出方向

    允许

    IPv6

    全部

    目的地址:::/0

    针对IPv6,用于安全组内ECS访问外部,允许流量从安全组内ECS流出。

  2. 申请虚拟IP地址:在源端子网中申请两个虚拟IP地址,具体方法请参见申请虚拟IP地址(本示例中虚拟IP1为172.16.0.203,虚拟IP2为172.16.0.47)。

    图8 虚拟IP地址

  3. 安装Nginx、Keepalived软件包及相关依赖:登录主备Flexus-X-HA1、Flexus-X-HA2服务器,执行以下命令,安装Nginx、Keepalived软件包及相关依赖包

    命令:yum install nginx keepalived -y

  4. 配置nginx:修改index.html文件内容,用来验证网站的访问情况。执行以下命令,打开“/usr/share/nginx/html/index.html”文件。将文件中原有的内容,全部替换成以下内容。

    命令:vim /usr/share/nginx/html/index.html
    
    Flexus-X-HA1改为
    Welcome to Flexus-X-HA1
    Flexus-X-HA2改为
    Welcome to Flexus-X-HA2

  5. 启动Nginx:执行以下命令,设置Nginx服务开机自启动,并启动Nginx服务。

    命令:
    systemctl enable nginx
    systemctl start nginx.service

  6. 验证Nginx:打开浏览器,并输入EIP地址,验证Nginx单节点的访问情况,网页如下图所示,表示Flexus-X-HA1Flexus-X-HA2的Nginx配置成功。

    图9 Flexus-X-HA1

    图10 Flexus-X-HA2

  7. 配置Keepalived:执行以下命令,打开“/etc/keepalived/keepalived.conf”文件,根据实际情况,替换配置文件中的IP参数,并将文件中原有的内容,全部替换成以下内容。

    命令:vim /etc/keepalived/keepalived.conf

    Flexus-X-HA1:

    • mcast_src_ipunicast_src_ip参数值:替换为Flexus-X-HA1的私有IP地址,本示例为172.16.0.127。
    • virtual_ipaddress参数值:替换为虚拟IP地址,本示例为172.16.0.47和172.16.0.203
    ! Configuration File for keepalived
    global_defs {
    router_id master-node
    }
    vrrp_script chk_http_port {
              script  "/etc/keepalived/chk_nginx.sh"
              interval 2
              weight -5
              fall 2
              rise 1
            }
    vrrp_instance VI_1 {
         state MASTER
         interface eth0
         mcast_src_ip 172.16.0.127
         virtual_router_id 51
         priority 100
         advert_int 1
         authentication {
                   auth_type PASS
                   auth_pass 1111
                   }
         unicast_src_ip 172.16.0.127                                                  
         virtual_ipaddress {                    
                         172.16.0.47
                         172.16.0.203
                        }
         track_script {
              chk_http_port
         }
    }

    Flexus-X-HA2:

    • mcast_src_ipunicast_src_ip参数值:替换为Flexus-X-HA2的私有IP地址,本示例为172.16.0.97。
    • virtual_ipaddress参数值:替换为虚拟IP地址,本示例为172.16.0.47和172.16.0.203。
      ! Configuration File for keepalived
      global_defs {
      router_id master-node
      }
      vrrp_script chk_http_port {
                script  "/etc/keepalived/chk_nginx.sh"
                interval 2
                weight -5
                fall 2
                rise 1
              }
      vrrp_instance VI_1 {
           state MASTER
           interface eth0
           mcast_src_ip 172.16.0.97
           virtual_router_id 51
           priority 100
           advert_int 1
           authentication {
                     auth_type PASS
                     auth_pass 1111
                     }
           unicast_src_ip 172.16.0.97                                                  
           virtual_ipaddress {                    
                           172.16.0.47
                           172.16.0.203
                          }
           track_script {
                chk_http_port
           }
      }

  8. 配置Nginx监控脚本:主备服务器执行以下命令,打开“/etc/keepalived/chk_nginx.sh”文件,将文件中原有的内容,全部替换成以下内容。

    命令:vim /etc/keepalived/chk_nginx.sh
    
    #!/bin/bash
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0"  ]; then
         systemctl start nginx.service
         sleep 2
         counter=$(ps -C nginx  --no-heading|wc -l)
         if [ "${counter}" =  "0" ]; then
              systemctl stop keepalived.service
         fi
    fi

  9. 脚本权限:主备服务器执行以下命令,为“chk_nginx.sh”文件添加执行权限。

    命令:chmod +x /etc/keepalived/chk_nginx.sh

  10. 启动Keepalived:主备服务器执行以下命令,设置Keepalived服务开机自启动,并启动Keepalived服务。

    命令:
    systemctl enable keepalived
    systemctl start keepalived.service

  11. 绑定虚拟IP:将Flexus-X-HA1和Flexus-X-HA2两台服务器的EIP进行解绑,具体方法参见解绑弹性公网IP。然后将虚拟IP绑定至实例和弹性公网IP详见:将虚拟IP绑定至实例或者EIP指南。(注意控制台绑定完成需要登录服务器配置虚拟IP地址),如下图所示。

    图11 虚拟IP绑定
    表3 虚拟ip配置

    虚拟IP

    2

    虚拟IP1:172.16.0.203

    虚拟IP2172.16.0.47

    绑定实例:将两个虚拟IP绑定至Flexus-X-HA1Flexus-X-HA2

    绑定弹性公网IP:将虚拟IP1绑定至EIP11.94.xx.236),将虚拟IP2绑定至EIP2115.120.xx.252)。

  12. (可选)关闭主备服务器的IP转发功能(本示例中服务器默认关闭):使用虚拟IP构建主备场景的高可用集群时,需要关闭备云服务器的IP转发功能,当主备云服务器切换后,则需要确保新的云服务器也关闭IP转发功能。为了避免云服务器主备切换后遗漏配置,建议您将主备云服务器的IP转发功能全都关闭。关闭IP转发功能的操作如下:

    切换root用户。
    命令:su root
    
    执行以下命令,查看IP转发功能是否已开启。
    命令:cat /proc/sys/net/ipv4/ip_forward
    
    回显结果:1为开启,0为关闭,默认为0。
    回显为0,任务结束。
    回显为1,继续执行以下操作。
    以下提供两种方法修改配置文件,二选一即可。
    方法一:
    执行以下命令,打开“/etc/sysctl.conf”文件。
    命令:vim /etc/sysctl.conf
    按i进入编辑模式。
    修改net.ipv4.ip_forward = 0。
    按ESC退出,并输入:wq!保存配置。
    
    方法二:
    执行sed命令,命令示例如下:
    命令:sed -i '/net.ipv4.ip_forward/s/1/0/g' /etc/sysctl.conf
    执行以下命令,使修改生效。
    命令:sysctl -p /etc/sysctl.conf

  13. 重启主备服务器:执行以下命令,分别重启主备服务器Flexus-X-HA1和Flexus-X-HA2

    命令:reboot

  14. 验证自动切换功能:打开浏览器,分别输入EIP1(1.94.xx.236)、EIP2(115.120.xx.252),验证主服务器的网页访问情况,网页如下图所示,表示此时主服务器是Flexus-X-HA1,表明配置正常。

    图12
    图13

  15. 确认网卡是否正确配置:远程登录Flexus-X-HA1,并执行以下命令,查看虚拟IP是否已绑定到Flexus-X-HA1的eth0网卡上,回显类似如下信息,虚拟IP1(172.16.0.203)和虚拟IP2(172.16.0.47)已绑定至eth0网卡上,再次确认Flexus-X-HA1为主服务器。

    命令:ip addr show
    图14 主服务器网卡配置

  16. 主备切换:执行以下命令,停止主服务器的Keepalived服务或者重启主云服务器二选一,本示例中主云服务器为Flexus-X-HA1。

    停止Keepalived服务
    命令: systemctl stop keepalived.service
    
    重启主云服务器
    命令:reboot

  17. 验证主备切换:执行以下命令,验证主服务器是否切换成Flexus-X-HA2。远程登录Flexus-X-HA2,并执行以下命令,查看虚拟IP是否已绑定到Flexus-X-HA2的eth0网卡上。

    命令:ip addr show
    图15 备服务器网卡配置

  18. 验证自动切换功能:打开浏览器,并分别输入EIP1(1.94.xx.236)、EIP2(115.120.xx.252),验证Flexus-X-HA2作为主服务器时的网页访问情况。

    网页如下图所示,表示此时主服务器是Flexus-X-HA2,且网页访问正常。

    图16
    图17

相关文档