# 为DWS集群绑定和解绑弹性负载均衡
#### 概述
用户使用客户端连接DWS集群时，如果仅连接一个CN节点地址，通过该CN节点内网IP或弹性公网IP连接时，只能连接到固定的CN节点上，存在CN单点问题。如果通过内网域名或公网域名连接，域名解析服务会对每个客户端随机选择一个IP地址，其解析机制并不能保证负载均衡，同样也存在CN单点问题。因此引入了**弹性负载均衡服务（Elastic Load Balance，简称ELB）**解决集群访问的单点问题。利用ELB健康检查机制可将客户端请求快速转发到正常工作的CN节点上，当CN节点故障时，也能第一时间切换流量到健康节点，最大化降低集群访问故障。
弹性负载均衡（ELB）是将访问流量根据转发策略分发到后端多台弹性云服务器的流量分发控制服务，通过ELB可将客户端请求均匀分发到多个CN节点，解决CN单点问题，提高集群的容错能力。了解更多，请参见[弹性负载均衡](https://support.huaweicloud.com/productdesc-elb/zh-cn_topic_0015479966.html)。
#### ELB绑定方式
当前支持同VPC绑定ELB和跨VPC绑定ELB两种绑定方式：
表1ELB绑定方式 
| 绑定类型    | 说明               | 适用场景                                                                                                                                                                                  |
|:---|:---|:---|
| 同VPC绑定   | ELB与DWS集群在同一VPC下 | 集群与ELB网络互通的常规场景。                                                                                                                                                                   |
| 跨VPC绑定 | ELB与DWS集群在不同VPC下  | ELB与集群分属不同网络环境的场景。 示例：某企业DWS集群部署在VPC-A中，数据库应用服务器部署在VPC-B中。若应用服务器需通过ELB访问DWS集群，可选择**跨VPC绑定ELB**，先打通VPC-A与VPC-B的网络，再将VPC-B中的ELB绑定到集群。 |
   
#### 约束与限制
- 该特性仅8.1.1.200及以上集群版本支持。
- 为保证集群负载均衡和高可用，**生产环境下建议集群创建后尽快绑定ELB**，避免业务中断风险。
- 使用ELB功能需授权DWS服务访问用户资源，系统会创建名称为"DWS AgencyAccess"的委托并同时删除具有最高权限的委托，以提升账号安全性。该操作不影响业务集群，只涉及管理面功能权限变更，详情请参见[委托DWS管理资源](https://support.huaweicloud.com/mgtg-dws/dws_01_0083.html)。
- **创建ELB约束与限制如下** **：**
  - 创建ELB时，ELB规格需根据实际业务访问流量评估，建议选取最大规格。DWS侧仅绑定关联ELB，并不改变ELB规格。
  
  - 创建ELB时，仅需创建ELB，无需创建ELB服务的监听器与后端服务器组，DWS会自动创建所需的监听器与后端服务器组。
  
  - 创建ELB时，不能存在与数据库端口相同的监听器，否则会导致ELB绑定失败。
  
  - 如需通过公网IP或域名访问ELB，请通过ELB服务管理页面进行EIP绑定或域名操作。
  
  - ELB不支持跨库访问（即通过ELB只能访问绑定集群的数据库，不能访问其他集群的数据库）。
   
- **绑定ELB约束与限制如下：**
  - DWS的ELB功能仅支持独享型ELB规格，不支持共享型ELB绑定操作。
    ![](https://support.huaweicloud.com/mgtg-dws/public_sys-resources/caution_3.0-zh-cn.png)
    部分Region因为独享型ELB规格未上线，所以不支持负载均衡能力。详情可跳转至[ELB控制台](https://console.huaweicloud.com/elb)查看是否支持独享型ELB。
    
  
  - 绑定ELB时，需创建和DWS集群相同的区域、VPC以及企业项目的ELB进行绑定。
  
  - 绑定ELB时，需创建TCP网络型且有内网IP的ELB进行绑定。
  
  - 绑定ELB时，DWS侧默认为ELB服务配置以下参数，**如需修改** **，请充分评估影响。**
    表2ELB默认配置参数说明 
    | 参数名称 | 默认值              | 参数说明                                  |
    |:---|:---|:---|
    | 转发策略  | ROUND_ROBIN（轮询） | ELB的转发策略之一，按顺序将请求依次分发给后端各CN节点，实现基本的负载均衡。 |
    | 健康检查间隔  | 10秒             | 每隔10秒检测一次CN节点健康状态。                    |
    | 超时时间   | 50秒              | 健康检查超时时间。                            |
    | 重试次数 | 3次                | 健康检查失败后重试次数。                           |
       
    
  
  - 集群跨VPC绑定ELB时支持绑定与集群VPC不一致的独享型负载均衡。
  
  - 跨VPC绑定ELB时，仅支持独享型负载均衡。
  
  - 跨VPC绑定ELB时，需检查集群VPC与ELB所属VPC下的子网网段不能重叠，否则网络无法互通。
  
  - 如果集群为IPv4集群，则仅支持绑定IPv4的ELB；如果集群为IPv6双栈集群，则仅支持绑定IPv6双栈的ELB。暂不支持交叉场景的ELB绑定。
   
 
 #### 绑定ELB
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏选择**"集群 \> 集群列表"**。默认显示用户所有的集群列表。
3. 在集群列表中，单击指定集群名称进入**"集群详情"**页面。
4. 在"连接信息"区域下，单击**"绑定弹性负载均衡"** ，选择需要绑定到此集群的ELB，若不存在ELB，则可在ELB服务页面创建完成后，再返回DWS侧刷新后进行绑定。
   
   DWS默认选择与集群同VPC的ELB。若勾选**"跨VPC绑定弹性负载均衡"** 则切换为跨VPC列表，即可绑定与集群VPC不同的ELB。绑定跨VPC的ELB时需打通集群VPC与ELB所属VPC网络，详情请参见[集群跨VPC绑定ELB前提条件]。
   
   
5. 绑定命令下发成功后，返回集群管理页面，集群列表将显示**"弹性负载均衡绑定中"**任务信息，绑定需要一定时间，请耐心等待。
6. 进入弹性负载均衡服务控制台，单击绑定的ELB名称，切换到**"后端服务器组"** 页签，检查集群CN节点是否被正确绑定到ELB中。ELB后端节点健康检查结果为"已删除"时可忽略，此为ELB服务显示问题，不影响实际功能。详情请参见[查看后端服务器组](https://support.huaweicloud.com/usermanual-elb/elb_ug_hdg_0008.html#section2)。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065638.png "点击放大")
   
   
   

7. 绑定成功后，进入**"集群详情"** 页面中的**"连接信息"**区域，可查看ELB提供的IP地址，后续连接DWS集群请使用此ELB地址。
 
 #### 集群跨VPC绑定ELB前提条件
**开启ELB跨VPC后端**
1. [登录ELB管理控制台](https://console.huaweicloud.com/vpc/?#/elb)。
2. 在弹性负载均衡列表选择实例类型为"**独享型** "且规格为"**网络型** "的弹性负载均衡，单击弹性负载均衡名称进入详情页面。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225554.png "点击放大")
   
   
3. 在基本信息页面选择开启**"跨VPC后端"** ，确认无误后，单击**"确定"** 。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065634.png "点击放大")
   
   
4. 开启后用户需查看所属VPC与子网网段（后续配置路由时需要使用）。 
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225552.png "点击放大")
   
   
**打通集群VPC与ELB所属VPC网络（该案例展示使用对等连接（VPC Peering）的方式打通网络，您还可使用其他方式（如企业路由器、VPN等）实现VPC互通）**
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏选择**"集群 \> 集群列表"**。默认显示用户所有的集群列表。
3. 在集群列表中，单击指定集群名称进入**"集群详情"** 页面，在集群详情界面查看集群所在VPC与子网网段。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617625323.png "点击放大")
   
   
4. 服务列表选择**"虚拟私有云"** 服务，在左侧导航栏选择**"我的VPC"**，找到需要建立对等连接的VPC。
5. 在虚拟私有云左侧导航栏下选择**"对等连接"** ，在页面右上角单击**"创建对等连接"**。
6. 在弹出页面中选择**"本端VPC"** 为集群VPC，**"对端VPC"** 为ELB所在VPC，确认无误后，单击**"确定"** 。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225550.png "点击放大")
   
   
7. 创建成功后单击**"查看路由"**添加路由信息。
8. 单击创建后的对等连接名称，进入对等连接**"基本信息"** 页面，切换至**"本端路由"** 页签，单击**"路由表"** 选择需要添加的路由表（集群所在VPC的路由表）并单击**"添加路由"** 。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617625325.png "点击放大")
   
   
9. 在本端路由表中添加**"目的地址"** 为ELB所在VPC的子网网段，**"下一跳类型"** 为**"对等连接"** ，**"下一跳"** 选择已创建好的对等连接，单击**"确定"** 创建路由。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617625321.png "点击放大")
   
   
10. 再次进入创建好的对等连接**"基本信息"** 页面，切换至**"对端路由"** 页签，单击**"路由表"** 选择需要添加的路由表（ELB所在VPC的路由表）并单击**"添加路由"** 。
    
    ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617505217.png "点击放大")
    
    
11. 在对端路由表中添加**"目的地址"** 为集群所在VPC的子网网段，**"下一跳类型"** 为**"对等连接"** ，**"下一跳"** 选择已创建好的对等连接，单击**"确定"** 创建路由。
    
    ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065640.png "点击放大")
    
    
12. 创建完毕后集群所在VPC与ELB所在VPC网络已打通，可查看[绑定ELB]步骤进行绑定。
 
#### 解绑ELB
![](https://support.huaweicloud.com/mgtg-dws/public_sys-resources/caution_3.0-zh-cn.png)
解绑ELB时，DWS侧会清除ELB中集群相关信息，但并不会删除用户ELB，请注意ELB本身的计费影响，防止不必要的成本支出。
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏选择**"集群 \> 集群列表"**。默认显示用户所有的集群列表。
3. 在集群列表中，单击指定集群名称进入**"集群详情"**页面。
4. 在"连接信息"区域下，单击**"解绑弹性负载均衡"**，进行ELB解绑操作。
5. 解绑命令下发成功后，返回集群管理页面，集群列表显示**"弹性负载均衡服务解绑中"**任务信息，解绑需要一定时间，请耐心等待。
6. 进入负载均衡服务控制台，单击解绑的ELB名称，切换到**"后端服务器"**页签，检查集群CN节点是否已被删除。
 
