
# 配置MRS集群间互信
当不同的两个Manager系统下安全模式的集群需要互相访问对方的资源时，系统管理员可以设置互信的系统，使外部系统的用户可以在本系统中使用。
如果未配置跨集群互信，每个集群资源仅能被本集群用户访问。每个系统用户安全使用的范围定义为"域"，不同的Manager系统需要定义唯一的域名。跨Manager访问实际上就是用户跨域使用。
#### 约束与限制
MRS 3.x及之后版本，同一集群最多支持配置500个互信集群。
#### 对系统的影响
- 配置跨集群互信后，外部系统的用户可以在本系统中使用，请系统管理员根据企业业务与安全要求，定期检视Manager系统中用户的权限。
- 配置跨集群互信时需要重启受影响的服务，会造成对应服务的业务中断。
- 配置跨集群互信后，互信的集群中均会增加Kerberos内部用户"krbtgt/*本集群域名* @*外部集群域名* "、"krbtgt/*外部集群域名* @*本集群域名* "，用户不能删除。
  - 针对MRS 2.x及之前版本，密码默认为"Crossrealm@123"。
  
  - MRS 3.x及之后版本，请系统管理员根据企业安全要求，及时且定期修改密码，需同时修改互信系统中4个用户且密码保持一致。具体请参见[修改MRS集群组件运行用户密码](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0566.html)。修改密码期间可能影响跨系统业务应用的连接。
   
- MRS 3.x及之后版本，如果修改了系统域名，且集群有运行中的HetuEngine计算实例，需要重启HetuEngine的计算实例。
- MRS 3.x及之后版本，配置跨集群互信后，各个集群都需要重新下载并安装客户端。
- 配置跨集群互信后，验证配置后是否可以正常工作，且如何使用本系统用户访问对端系统资源，请参见[配置互信MRS集群的用户权限](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0355.html)。
 
#### 前提条件
- 系统管理员已明确业务需求，并规划好不同系统的域名。域名只能包含大写字母、数字、圆点（.）及下划线（_），且只能以字母或数字开头。例如"DOMAINA.HW"和"DOMAINB.HW"。
- 配置跨集群互信前，两个Manager系统的域名必须不同。MRS创建ECS/BMS集群时会随机生成唯一系统域名，通常无需修改。
- 配置跨集群互信前，两个集群中不能存在有相同的主机名，也不能存在相同的IP地址。
- 配置互信的两个集群系统时间必须一致，且系统上的NTP服务必须使用同一个时间源。
- 配置互信的两个集群如果包含MRS 3.3.1及之后版本，需要确保两集群所使用的加密算法和模式一致。 可在MRS集群中执行**cat ${CONTROLLER_HOME}/inst/conf/oms-config.ini \| grep "krb5_supported_enctypes"**命令，根据"krb5_supported_enctypes"参数值确认加密类型。
  - 参数值为空：表示使用默认加密算法和模式，即"AES256-CTS-HMAC-SHA1-96 AES128-CTS-HMAC-SHA1-96"
  
  - aes256-sha1,aes128-sha1：表示加密算法和模式为"AES256-CTS-HMAC-SHA1-96 AES128-CTS-HMAC-SHA1-96"。
  
  - aes256-sha2,aes128-sha2：表示加密算法和模式为"AES256-CTS-HMAC-SHA384-192 AES128-CTS-HMAC-SHA256-128"。
   
- 配置互信的两个集群系统内所有集群全部组件的运行状态均为"良好"。
- 配置互信的两个集群，需要在相同的VPC中。如果两集群不在同一VPC中，则需要已建立VPC对等连接，相关操作请参考[VPC对等连接](https://support.huaweicloud.com/usermanual-vpc/vpc_peering_0000.html)。
- MRS 3.x及之后版本，Manager内所有集群的ZooKeeper服务的"acl.compare.shortName"参数需确保为默认值"true"。否则请修改该参数为"true"后重启ZooKeeper服务。
 
#### 配置MRS集群间互信（MRS 3.x及之后版本）
1. 登录其中一个集群的Manager界面。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"系统 \> 权限 \> 域和互信"。
3. 修改配置参数"互信对端域"。 
   表1相关参数 
   | 参数         | 示例                                | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|:---|
   | realm_name | **MRSTEST** .**COM**              | 填写对端系统的域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | ip_port    | **10.0.0.1:21732,10.0.0.2:21732** | 填写对端系统的KDC地址。 参数值格式为：*IP* *地址:端口*。 - IP：*对端系统内要配置互信集群* *的Kerberos* *服务部署的节点IP* *地址*，可通过在KrbServer服务页面选择"实例"页签，查看KerberosServer角色的业务IP获取。  - 端口：端口值可通过查看KrbServer服务的"kdc_ports"参数获取，默认值为"21732"。 例如，Kerberos服务部署在10.0.0.1和10.0.0.2上，与本端系统建立互信，则对应参数值为"10.0.0.1:21732,10.0.0.2:21732"。   - 如果是双平面组网，需填写业务平面IP地址。  - 采用IPv6地址时，IP地址应写在中括号"\[\]"中。  - 部署主备Kerberos服务或者对端系统内有多个集群需要与本端建立互信时，多个KDC地址使用逗号分隔。   |
      
   如果需要配置与多个Manager系统的互信关系，请单击![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002259079606.png)添加新项目，并填写参数值。删除多余的配置请单击![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002259182712.png)。
   
   
4. 单击"确定"。
5. 以**omm** 用户登录主管理节点，执行以下命令更新域配置。
   
   **sh ${BIGDATA_HOME}/om-server/om/sbin/restart-RealmConfig.sh**
   提示以下信息表示命令执行成功。
   ```
   Modify realm successfully. Use the new password to log into FusionInsight again.
   ```
   重启后部分主机与服务可能无法访问并触发告警，执行"restart-RealmConfig.sh"后大约需要1分钟自动恢复。
   
   
6. 登录Manager页面，执行以下操作重新启动集群或配置过期的实例。 
   确认是否同时执行了修改Manager系统域名操作。
   - 是，单击主页上的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001953600645.png)或者"更多"，单击"启动"，验证密码并确认操作影响后单击"确定"，等待集群启动成功。
   
   - 否，单击主页上的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001926361902.png)或者"更多"，单击"重启配置过期的实例"，验证密码并确认操作影响后单击"确定"，等待服务重启成功。
     如果集群安装了Doris服务，还需选择"集群 \> 服务 \> Doris"，在概览页面右上角选择"更多 \> 重启服务"，验证密码并单击"确定"，等待Doris重启成功。
     
   
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   **重启集群或者集群内的角色实例，会造成对应服务的业务中断，请务必在业务空闲期或者确认上层业务影响可控后，再执行本操作。**
   
   
7. 退出Manager页面，重新登录正常表示配置已成功。
8. 如果有运行中的HetuEngine计算实例，需重启该计算实例。 
   1. 使用用于访问HetuEngine WebUI界面的用户登录FusionInsight Manager。
   
   2. 选择"集群 \> 服务 \> HetuEngine"，进入HetuEngine服务页面。
   
   3. 在"概览"页签下的"基本信息"区域，单击"HSConsole WebUI"后的链接，进入HSConsole界面。
   
   4. 对于运行中的计算实例，在实例的"操作"列单击"停止"，待计算实例处于"已停止"状态后，再单击"启动"重启计算实例。
   
   
   
   
9. 登录另外一个集群的Manager页面，重复以上操作。
 
#### 配置MRS集群间互信（MRS 2.x及之前版本）
1. 在MRS管理控制台，分别查看两个集群的所有安全组。
   
   - 当两个集群的安全组相同，请执行[步骤 3]。
   
   - 当两个集群的安全组不相同，请执行[步骤 2]。
   
   
   
   
2. 在VPC管理控制台，选择"访问控制 \> 安全组"，在对应安全组名称的操作列单击"配置规则"，分别为每个安全组添加规则。
   
   在入方向规则页签，单击"添加规则"，添加入方向规则。
   - 优先级：优先级可选范围为1-100，默认值为1，即最高优先级。优先级数字越小，规则优先级级别越高。
   
   - 策略：允许。
   
   - 协议端口：基本协议/全部协议。
   
   - 协议：根据实际情况选择"IPv4"或"IPv6"。
   
   - "源地址"为"安全组"且是对端集群的安全组。
     - 为A集群的安全组添加入方向规则，源地址选择B集群（对端集群）的安全组。
     
     - 为B集群的安全组添加入方向规则，源地址选择A集群（对端集群）的安全组。
      
   
   
   未开启Kerberos认证的普通集群执行[步骤 1]\~[步骤 2]即可完成跨集群互信配置，开启Kerberos认证的安全集群请继续执行后续步骤进行配置。
   
   
3. 分别登录两个集群的MRS Manager界面，单击"服务管理"，查看全部组件的"健康状态"结果，是否全为"良好"？
   
   - 是，执行[步骤 4]。
   
   - 否，任务结束，联系运维人员检查状态。
   
   
   
   
4. 查看配置信息。
   
   1. 分别在两个集群MRS Manager，选择"服务管理 \> KrbServer \> 实例"，查看两个KerberosServer部署主机的"管理IP"。
   
   2. 单击"服务配置"，将"基础配置"切换为"全部配置"并在左侧导航树上选择"KerberosServer \> 端口"，查看"kdc_ports"的值，默认值为"21732"。
   
   3. 单击"域"，查看"default_realm"的值。
   
   
   
   
5. 在其中一个集群的MRS Manager，修改配置参数"peer_realms"。
   
   表2相关参数 
   | 参数         | 示例                                | 参数说明                                                                                                                                                                                                                   |
   |:---|:---|:---|
   | realm_name | **MRSTEST** .**COM**              | 填写互信集群的域名，即[步骤4]中获得的"default_realm"的值。                                                                                                                                |
   | ip_port    | **10.0.0.1:21732,10.0.0.2:21732** | 填写互信集群的KDC地址，参数值格式为：*外部集群KerberosServer部署的节点IP地址:kdc_port*。 两个KerberosServer的IP地址使用逗号分隔，例如KerberosServer部署在10.0.0.1和10.0.0.2上，则对应参数值为"10.0.0.1:21732,10.0.0.2:21732"。 |
      
   - 如果需要配置与多个集群的互信关系，请单击![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002293752809.jpg)添加新项目，并填写参数值。删除多余的配置项请单击![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002293679753.jpg)。
   
   - 最多支持与16个集群配置互信，且本集群的不同互信集群之间默认不存在互信关系，需要另外添加。
   
   
   
   
6. 单击"保存配置"，在弹出窗口中勾选"重新启动受影响的服务或实例。"，单击"确定"重启服务。若未勾选"重新启动受影响的服务或实例。"，请手动重启受影响的服务或实例。 
   界面提示"操作成功"，单击"完成"，服务成功启动。
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   **重启集群或者集群内的角色实例，会造成对应服务的业务中断，请务必在业务空闲期或者确认上层业务影响可控后，再执行本操作。**
   
   
7. 退出MRS Manager，重新登录正常表示配置已成功。
8. 在另外一个集群的MRS Manager，重复[步骤 5]到[步骤 7]。
9. 还需参考[更新互信集群客户端配置（MRS 2.x及之前版本）]进行后续操作。
 
 #### 更新互信集群客户端配置（MRS 2.x及之前版本）
配置跨集群互信后，因在MRS Manager修改了服务配置参数并重启了服务，请重新准备好客户端配置文件并更新客户端。
场景1：
A集群和B集群（对端集群、互信集群）是同类型集群，例如均是分析集群或者流式集群，请参见[更新客户端配置（2.x及之前版本）](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0090.html#mrs_01_0090__section596910337247)分别更新客户端配置文件。
- 更新A集群的客户端配置文件。
- 更新B集群的客户端配置文件。
场景2：
A集群和B集群（对端集群、互信集群）是不同类型集群，请执行如下步骤分别更新对端集群的配置文件到本端集群和本端集群自身的配置文件。
- 将A集群的客户端配置文件更新到B集群上。
- 将B集群的客户端配置文件更新到A集群上。
- 更新A集群的客户端配置文件。
- 更新B集群的客户端配置文件。
1. 登录MRS Manager(A集群)。
   
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 单击"服务管理"，然后单击"下载客户端"。
   
   图1下载客户端   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001879581524.png "点击放大")
   
   
3. "客户端类型"选择"仅配置文件"。
4. "下载路径"选择"远端主机"。
5. 将"主机IP"设置为B集群的主Master节点IP地址，设置"主机端口"为"22"，并将"存放路径"设置为"/tmp"。 
   - 如果使用SSH登录B集群的默认端口"22"被修改，请将"主机端口"设置为新端口。
   
   - "存放路径"最多可以包含256个字符。
   
   
   
   
6. "登录用户"设置为"root"。 
   如果使用其他用户，请确保该用户对保存目录拥有读取、写入和执行权限。
   
   
7. 在"登录方式"选择"密码"或"SSH私钥"。 
   - 密码：输入创建集群时设置的root用户密码。
   
   - SSH私钥：选择并上传创建集群时使用的密钥文件。
   
   
   
   
8. 单击"确定"开始生成客户端文件。 
   - 若界面显示以下提示信息表示客户端包已经成功保存，单击"关闭"。
     ```
     下载客户端文件到远端主机成功。
     ```
     
   
   
   
   - 若界面显示以下提示信息，请检查用户名密码及远端主机的安全组配置，确保用户名密码正确，及远端主机的安全组已增加SSH(22)端口的入方向规则。然后从[步骤 2]执行重新下载客户端。
     ```
     连接到服务器失败，请检查网络连接或参数设置。
     ```
     
   
   
   
   
9. 使用VNC方式，登录弹性云服务器（B集群）。参见[登录弹性云服务器（VNC方式）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0127.html)。
   
   所有镜像均支持Cloud-init特性。Cloud-init预配置的用户名"root"，密码为创建集群时设置的密码。
   
   
10. 执行以下命令切换到客户端目录，例如"/opt/Bigdata/client"： 
    **cd /opt/Bigdata/client**
    
    
11. 执行以下命令，将A集群的客户端配置更新到B集群上：
    
    **sh refreshConfig.sh** *客户端安装目录* *客户端配置文件压缩包完整路径*
    例如，执行命令：
    **sh refreshConfig.sh /opt/Bigdata/client /tmp/MRS_Services_Client.tar**
    界面显示以下信息表示配置刷新更新成功：
    ```
    ReFresh components client config is complete.
    Succeed to refresh components client config.
    ```
    ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
    步骤[步骤 1]\~[步骤 11]的操作也可以参考[更新客户端配置（2.x及之前版本）](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0090.html#mrs_01_0090__section596910337247)页面的方法二操作。
    
    
12. 参见[步骤 1]\~[步骤 11]，将B集群的客户端配置文件更新到A集群上。
13. 参见[更新客户端配置（2.x及之前版本）](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0090.html#mrs_01_0090__section596910337247)，分别更新本端集群自身的客户端配置文件：
    
    - 更新A集群的客户端配置文件。
    
    - 更新B集群的客户端配置文件。
    
    
    
    
 
#### 使用样例
以下步骤以使用客户端访问HDFS为例，介绍配置互信后的使用方式。
1. 已参考本章节操作配置两集群互信，并更新客户端。
2. 以客户端安装用户，登录安装客户端的节点。
3. 执行以下命令，切换到客户端安装目录。 
   **cd** *客户端安装路径*
   
   
4. 执行以下命令配置环境变量。 
   **source bigdata_env**
   
   
5. 认证用户并执行HDFS客户端命令，例如查看HDFS客户端文件夹。 
   - 认证对端集群账号，访问本端HDFS。 **kinit** *对端组件业务用户* @*对端域名*
     **hdfs dfs -ls /**
     
   
   - 认证本端集群账号，访问对端HDFS。 **kinit** *本端组件业务用户*
     **hdfs dfs -ls hdfs://** *对端集群NameNode节点IP:port*/
     
   
   
   
   
 
