【华为云网络技术分享】【第六弹】VIP特性典型应用案例指导

举报
樱桃小丸子 发表于 2018/01/27 15:26:42 2018/01/27
【摘要】 什么是虚拟IP虚拟IP是一个未分配给真实云服务器网卡的IP地址。云服务器除了拥有私有IP地址外,还可以拥有虚拟IP地址,用户可以通过其中任意一个IP(私有IP/虚拟IP)访问此云服务器。同时,虚拟IP地址拥有私有IP地址同样的网络接入能力,包括VPC内二三层通信、VPC之间对等连接访问,以及弹性IP、VPN、云专线等Internet接入。典型组网虚拟IP主要用在云服务器的主备切换,达到高可用性HA

什么是虚拟IP

虚拟IP是一个未分配给真实云服务器网卡的IP地址。云服务器除了拥有私有IP地址外,还可以拥有虚拟IP地址,用户可以通过其中任意一个IP(私有IP/虚拟IP)访问此云服务器。同时,虚拟IP地址拥有私有IP地址同样的网络接入能力,包括VPC内二三层通信、VPC之间对等连接访问,以及弹性IP、VPN、云专线等Internet接入。

典型组网

虚拟IP主要用在云服务器的主备切换,达到高可用性HA(High Availability)的目的。当主服务器发生故障无法对外提供服务时,动态将虚拟IP切换到备服务器,继续对外提供服务。本节介绍两种典型的组网模式。

l   典型组网1:HA高可用性模式

场景举例:如果您想要提高服务的高可用性,避免单点故障,可以用“一主一备”或“一主多备”的方法组合使用云服务器,这些云服务器对外表现为一个虚拟IP。当主服务器故障时,备服务器可以转为主服务器,继续对外提供服务。

组网方式如下:

image.png

u  将2台同子网的云服务器绑定同一个虚拟IP,请参考云服务器绑定虚拟IP(控制台操作) 或者 云服务器绑定虚拟IP(API操作)

u  将这2台云服务器配置Keepalived,实现一台为主服务器,一台为备份服务器。

 

【说明】 Keepalived可参考业内通用的配置方法,此处不做详细介绍。

 

l   典型组网2:高可用负载均衡集群

场景举例:如果您想搭建高可用负载均衡集群服务,您可以采用Keepalived + LVS(DR)来实现。

    组网方式如下:

                                              image.png


u  将2台云服务器绑定同一个虚拟IP,请参考请参考云服务器绑定虚拟IP(控制台操作) 或者 云服务器绑定虚拟IP(API操作)

u  将绑定了虚拟IP的这2台云服务器配置Keepalived+LVS(DR模式),组成LVS主备服务器。这2台服务器作为分发器将请求均衡地转发到不同的后端服务器上执行。

u  配置另外2台云服务器作为后端RealServer服务器。

u  关闭2台后端RealServer云服务器的源/目的检查。请参考关闭源/目的检查(控制台操作)或者关闭源/目的检查(API操作)

 

【说明】 Keepalived + LVS调度服务端安装配置以及后端RealServer服务器配置可以参考业内通用的配置方法,此处不做详细介绍。

使用方法

l   案例1:通过弹性IP访问虚拟IP

场景举例:您的应用需要具备高可用性并通过Internet对外提供服务,推荐使用弹性IP绑定虚拟IP功能。

通过弹性IP访问虚拟IP(控制台操作)

通过弹性IP访问虚拟IP (API操作)

 

l   案例2:通过VPN/云专线/对等连接访问虚拟IP

场景举例:您的应用需要具备高可用性并且需要通过Internet访问,同时需要具备安全性(VPN),保证稳定的网络性能(云专线),或者需要通过其他VPC访问(对等连接)。

通过VPN/云专线/对等连接访问虚拟IP(控制台操作)

通过VPN/云专线/对等连接访问虚拟IP (API操作)

注意事项

l   不推荐在云服务器配置多个同子网网卡的场景下,使用虚拟IP功能。若在该场景下使用虚拟IP功能,云服务器内部会存在路由冲突,导致虚拟IP通信异常。

控制台操作

云服务器绑定虚拟IP

l   在“虚拟私有云”页面,选择云服务器所在的VPC。

image.png

l   选择云服务器所在的子网。

image.png

l   选择虚拟IP”标签,点击申请虚拟IP地址

image.png

l   选择对应的虚拟IP,点击绑定服务器,在弹出的页面中选择需要绑定的服务器及网卡。多网卡云服务器场景下,推荐使用主网卡。

image.png

image.png

l   操作结束,返回。

弹性IP访问虚拟IP

l   参考典型组网进行云服务器组网配置,确保云服务器已经绑定虚拟IP。。

l   进入虚拟私有云à弹性IP”页面,点击申请弹性IP”或使用已有弹性IP,点击对应弹性IP绑定操作。

image.png

 

l   在弹出的页面中点击选择虚拟IP地址,选择需要绑定的虚拟IP,然后点击确定按钮。

image.png

l   操作结束,返回。

通过VPN/云专线/对等连接访问虚拟IP

l   参考典型组网进行服务器组网配置。

l   创建VPN/云专线/对等连接。

l   操作结束,返回。

关闭源/目的检查(适用于高可用负载均衡集群场景)

l   进入弹性云服务器页面,选择对应的云服务器。点击网卡选项卡,关闭/目的检查开关。

image.png

l   操作结束,返回。

 

API操作

云服务器绑定虚拟IP

l   API的接口调用可以用常用工具:Postman或者Jemeter

 

此部分涉及5API接口的调用,具体如下:

序号

方法

URI

说明

1

POST

/v3/auth/tokens

获取Token

2

POST

/v2.0/ports

创建VIP Port

3

PUT

/v2.0/ports/{port_id}

将云服务器与虚拟IP绑定

4

GET

/v2/{tenant_id}/servers/{server_id}/os-interface

配置绑定了虚拟IP的云服务器网卡的allowed-address-pairs

5

PUT

/v2.0/ports/{port_id}

  

API接口的具体调用步骤如下:

1.    获取token

方法

POST

url

iam地址:端口/v3/auth/tokens

body体(样例)

{

    "auth":{

      "identity":{

        "methods": ["password"],

        "password":{   

          "user":{

            "name": "user_name",

            "domain":{

              "name":"domain_name"

          },

            "password":"user_password"

         }

       }

     },

      "scope":{

        "project":{

           "name":"project_name"

       }

     }

  }

}

 

2.    在云服务器所在的VPC子网内,创建vip port

要求与云服务器同子网,并指定“device_owner”参数为“neutron:VIP_PORT”

方法

POST

url

vpc地址:端口/v2.0/ports

body体(样例)

{

       "port":   {

                      "network_id":   "a54e1b19-ce78-4b7e-b28b-d2d716cdc161",

                      "device_owner":   "neutron:VIP_PORT",

                      "name":   "vip_port_test"

       }

}

说明

body体中的network_id为云服务器所在的网络ID

 

3.    将云服务器与虚拟IP绑定。

更新vip portallowed-address-pairs,指定ip_address为需要绑定的云服务器的网卡的ip地址。

方法

PUT

url

vpc地址:端口/v2.0/ports/{port_id}

body体(样例)

{

      "port": {

            "allowed_address_pairs": [

                           {"ip_address":"192.168.22.221"},

                           {"ip_address":"192.168.22.203"}

             ]

      }

}

说明

1.     url{port_id}是上一步中创建的vip portID

2.         body体中ip_address就是需要绑定的云服务器网卡的IP地址

 

1.    配置绑定了虚拟IP的云服务器网卡的allowed-address-pairs

获取绑定了虚拟IP的云服务器网卡信息:

方法

GET

url

ecs地址:端口/v2/{tenant_id}/servers/{server_id}/os-interface

body

不涉及

说明

url{tenant_id}是租户ID{server_id}是云服务器的ID

 

更新云服务器网卡的allowed-address-pairs1.1.1.1/0,关闭/目的检查

方法

PUT

url

vpc地址:端口/v2.0/ports/{port_id}

body

{

      "port": {

            "allowed_address_pairs": [

                           {"ip_address":"1.1.1.1/0"}

             ]

      }

}

说明

url{port_id}是绑定了虚拟IP的云服务器网卡的ID

 

2.   操作结束,返回。

弹性IP访问虚拟IP

l   API的接口调用可以用常用工具:Postman或者Jemeter

 

1.      参考典型组网进行云服务器组网配置,确保云服务器已经绑定虚拟IP

2.      弹性IP绑定虚拟IP

此部分涉及2API接口的调用,列表如下:

序号

方法

URI

说明

1

POST

/v3/auth/tokens

获取Token

2

POST

/v2.0/floatingips

创建弹性IP

  

    API接口的具体调用步骤如下:

1)获取token

方法

POST

url

iam地址:端口/v3/auth/tokens

body体(样例)

{

    "auth":{

      "identity":{

        "methods": ["password"],

        "password":{   

          "user":{

            "name": "user_name",

            "domain":{

              "name":"domain_name"

          },

            "password":"user_password"

         }

       }

     },

      "scope":{

        "project":{

           "name":"project_name"

       }

     }

  }

}

 

2)创建弹性IP绑定虚拟IP

方法

POST

url

vpc地址:端口/v2.0/floatingips

body体(样例)

{

           "floatingip":   {

                         "floating_network_id":   "${admin_external_net}",

                         "port_id":   "4b9246da-aa12-4959-b17e-84038b8a0a96"

           }

}

说明

body体中的参数port_id为云服务器绑定的虚拟IP对应的VIP PortID

 

3.     操作结束,返回。

 

通过VPN/云专线/对等连接访问虚拟IP

l   API的接口调用可以用常用工具:Postman或者Jemeter

 

1.      参考典型组网进行云服务器组网配置

2.      创建VPN/云专线/对等连接。

3.      操作结束,返回。

 

 

关闭源/目的检查(适用于高可用负载均衡集群场景)

l   API的接口调用可以用常用工具:Postman或者Jemeter

 

此部分涉及2API接口的调用,具体如下:

序号

方法

URI

说明

1

POST

/v3/auth/tokens

获取Token

3

PUT

/v2.0/ports/{port_id}

关闭云服务器网卡的“源/目的检查

  

API接口的具体调用步骤如下:

 

1.       获取token

方法

POST

url

iam地址:端口/v3/auth/tokens

body体(样例)

{

    "auth":{

      "identity":{

        "methods": ["password"],

        "password":{   

          "user":{

            "name": "user_name",

            "domain":{

              "name":"domain_name"

          },

            "password":"user_password"

         }

       }

     },

      "scope":{

        "project":{

           "name":"project_name"

       }

     }

  }

}

 

2.       更新云服务器网卡的allowed-address-pairs1.1.1.1/0,关闭/目的检查

方法

PUT

url

vpc地址:端口/v2.0/ports/{port_id}

body

{

      "port": {

            "allowed_address_pairs": [

                           {"ip_address":"1.1.1.1/0"}

             ]

      }

}

说明

url{port_id}是绑定了虚拟IP的云服务器网卡的ID

 

3.       操作结束,返回。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。