文档

通过SAG vCPE实现云上ACK与云下K8s集群互通

更新时间:

智能接入网关SAG(Smart Access Gateway)vCPE是智能接入网关软件镜像版,通过将SAG vCPE镜像部署在您网络的宿主机中,使宿主机作为一个CPE(Customer-premises equipment)设备为您提供上云服务。本文为您介绍如何通过SAG vCPE将已经部署在用户云下网络环境中的K8s集群接入阿里云ACK,实现云上云下网络互通。

前提条件

  • 您已具备操作IDC网络管理和配置的权限。具体可以咨询IDC管理员。

  • 您已经在阿里云平台创建了专有网络VPC(Virtual Private Cloud)并部署了相关云服务。具体操作,请参见搭建IPv4专有网络

  • 您已经了解阿里云VPC中云服务所应用的安全组规则,并确保安全组规则允许云下网络访问阿里云VPC内的资源。具体操作,请参见查询安全组规则添加安全组规则

  • 您已了解阿里云ACK集群创建以及网络规划的全部内容,并确保ACK集群的网络与云下网络环境不存在网段重叠的情况。具体操作,请参见创建Kubernetes托管版集群Kubernetes集群网络规划

示例场景

某企业在自己的专有IDC环境部署了K8s集群,在阿里云平台某地域部署了ACK。该企业计划使用SAG vCPE产品将云上ACK和云下的K8s服务连通,实现资源互访。

您可以在IDC内的一台实例(物理机或者虚拟机)中部署SAG vCPE镜像,使该实例作为一台SAG vCPE设备连接阿里云。SAG vCPE设备连接至阿里云后,可通过阿里云云连接网和云企业网实现IDC内资源与阿里云VPC内资源的互访。本文场景示例图如下所示。

企业场景.png

从上图可以得出云上和云下的网络情况如下表所示。

类型

私网网段(VPC网段)

容器网段

阿里云云上ACK集群

172.16.0.0/12

10.77.0.0/16

IDC中K8s集群

192.168.0.0/16

10.18.0.0/16

部署流程

部署流程.png

  1. 创建SAG vCEP实例:在智能接入网关管理控制台创建SAG vCPE实例,创建后您可以通过SAG vCPE实例管理SAG vCPE设备。

  2. 部署SAG vCEP镜像:在IDC机房中选择一台机器,部署SAG vCPE镜像,该机器可作为SAG vCPE设备连接IDC网络至阿里云。

  3. 配置阿里云侧网络:在智能接入网关管理控制台对SAG vCPE设备进行网络配置,以便SAG vCPE设备能正常接入阿里云。

  4. 配置IDC侧网络:在IDC中进行网络配置,实现IDC和阿里云ACK资源互通。

  5. 测试连通性:分别测试云上云下主机间的网络连通性、云上云下容器Pod间的网络连通性。

步骤一:创建SAG vCEP实例

您需要在智能接入网关管理控制台创建SAG vCPE实例,创建后您可以通过SAG vCPE实例管理SAG vCPE设备。

  1. 登录智能接入网关管理控制台

  2. 智能接入网关页面,选择购买智能接入网关 > 创建智能接入网关(vCPE)

  3. 在购买页面,完成以下配置,然后单击立即购买并完成支付。

    配置

    说明

    本文示例

    区域

    选择SAG vCPE实例所属的区域。

    中国内地

    实例名称

    输入SAG vCPE实例的名称。

    实例名称可为空。

    长度为2~128个字符,以大小写字母或中文开头,可包含数字,半角句号(.),下划线(_)或短划线(-)。

    Demo

    实例类型

    选择智能接入网关vCPE的实例类型。

    SAG-vCPE

    版本

    选择智能接入网关vCPE的版本。

    基础版

    使用方式

    选择SAG vCPE的使用方式。默认为双机

    双机方式下一个SAG vCPE实例中默认可以连接两台SAG vCPE设备。您可以配置两台SAG vCPE设备为主备模式,共同将本端网络接入阿里云,提高您网络的可用性。本文中只使用主设备。

    双机

    带宽峰值

    网络通信的带宽峰值。单位:Mbps。

    50 Mbps

    购买数量

    选择需要创建的SAG vCPE实例的数量。

    1

    购买时长

    选择购买时长。

    您可以选中下方的到期自动续费进行自动续费。

    1个月

    资源组

    选择SAG vCPE实例所属的资源组。

  4. 返回智能接入网关管理控制台,在顶部菜单栏,选择已创建实例的区域。

  5. 在左侧导航栏,选择智能接入网关

  6. 智能接入网关页面,单击已创建的实例ID。

  7. 在实例详情页面,单击设备管理页签,查看并记录当前SAG vCPE主设备的序列号和密钥,用于后续SAG vCPE实例和SAG vCPE设备的绑定。

    SAG vCPE.png

步骤二:部署SAG vCEP镜像

为实现IDC和阿里云ACK集群的网络互通,您需要在IDC机房中选择一台机器,用于部署SAG vCPE镜像。部署完成后,该机器可作为SAG vCPE设备为您提供服务,连接IDC网络至阿里云。

  1. 在IDC环境中选择一台机器。

    为了保证SAG vCEP镜像可以正常运行,选择的机器需要满足以下条件:

    • 支持安装以下类型的操作系统:

      • (推荐)64位,CentOS 7.6或以上规格。

      • 64位,Ubuntu 18.04或以上规格。

    • 支持安装3.10.0-957.21.3.el7.x86_64或以上规格的内核版本。

    • 有单独的可连接公网的网卡。

    • 支持远程登录。

    • 未运行业务系统。

  2. 登录IDC机器,执行以下命令,下载脚本至实例的/root目录下。

    说明
    • 您可以将脚本下载至自定义路径内,请注意后续执行脚本时,路径需修改为您的自定义路径。

    • 下载脚本后,请勿修改脚本内容以及脚本名称。

    根据您的宿主机是否部署在中国内地区域,选择不同的下载脚本命令。

    • 宿主机部署在中国内地区域

      wget -O /root/sag_vcpe_v2.3.0_deployment.sh https://sdwan-oss-shanghai.oss-cn-shanghai.aliyuncs.com/vcpe_vm/sag_vcpe_v2.3.0_deployment.sh
    • 宿主机部署在非中国内地区域

      wget -O /root/sag_vcpe_v2.3.0_deployment.sh https://sdwan-oss-shanghai.oss-accelerate.aliyuncs.com/vcpe_vm/sag_vcpe_v2.3.0_deployment.sh
  3. 执行以下命令,为脚本赋予可执行权限。

    chmod +x /root/sag_vcpe_v2.3.0_deployment.sh
  4. 执行脚本。

    /root/sag_vcpe_v2.3.0_deployment.sh -n sag**** -k X8==**** -t idc  -w eth0

    部分参数说明如下表。关于脚本参数的更多信息,请参见脚本参数说明

    参数

    描述

    -n

    SAG vCPE设备的序列号。

    -k

    SAG vCPE设备的密钥。

    -t

    安装SAG vCPE镜像的宿主机所在的平台。取值:

    • aliyun(默认值):表示SAG vCPE镜像部署在阿里云云服务器ECS(Elastic Compute Service)中。

    • aws:表示SAG vCPE镜像部署在AWS EC2中。

    • ens:表示SAG vCPE镜像部署在阿里云边缘节点服务ENS(Edge Node Service)的实例中。

    • 如果您的SAG vCPE镜像部署在本地网络的服务器中,则本参数的取值可为aliyunawsens之外的任意英文字符。

    -w

    WAN口的网卡名称。您可以通过ifconfig命令查看宿主机的网卡名称。

    执行脚本时,系统会自动检测部署环境是否满足需求:

    • 如果部署环境相关的组件安装不完整,系统会出现如下图的提示。您可以输入yes,系统将自动帮您安装相关组件。安装组件完成后,开始部署SAG vCPE镜像。yes.png

    • 如果检测到部署环境已经满足需求,则会直接开始部署SAG vCPE镜像,镜像部署完成后系统会出现如下图的提示。部署完成

  5. 部署完成后,执行docker ps命令,查看系统中是否已有以下两个容器。

    查看部署结果.png

    • 如果系统已包含vsag-core和vsag-manager-base两个容器,则证明部署成功。

    • 如果系统未包含上述两个容器,则说明部署失败,请提交工单处理。

步骤三:配置阿里云侧网络

SAG vCPE镜像部署完成后,您还需要在智能接入网关管理控制台对SAG vCPE设备进行网络配置,以便SAG vCPE设备能正常接入阿里云。

  1. 配置线下路由同步方式。

    1. 登录智能接入网关管理控制台,在顶部菜单栏,选择目标区域。

    2. 智能接入网关页面,找到目标实例,在操作列单击网络配置

    3. 网络配置页签的线下路由同步方式区域,单击添加静态路由

    4. 添加静态路由对话框中,输入IDC所在的私网网段,然后单击确定

    5. 再次单击添加静态路由,在添加静态路由对话框中,输入IDC中的K8s集群容器网段,然后单击确定

      两个网段都添加完成后,界面如下图所示。网络配置.png

  2. 绑定云连接网。

    云连接网是SAG的重要组成部分,SAG通过云连接网将您的网络接入阿里云。

    1. 创建云连接网。具体操作,请参见创建云连接网

      说明

      云连接网所在区域需和SAG vCPE实例所在区域相同。

    2. 智能接入网关管理控制台的左侧导航栏,选择智能接入网关

    3. 智能接入网关页面,找到目标实例,在操作列单击网络配置

    4. 网络配置页签,选择绑定网络详情

    5. 已绑定同账号实例区域下,单击添加网络,选择已创建的云连接网实例,然后单击确定

    6. 单击设备管理页签,查看SAG vCPE设备的VPN状态和管控状态。

      在您绑定云连接网后,SAG vCPE设备的VPN状态和管控状态均为正常,则表示SAG vCPE设备已接入阿里云。

      绑定网络.png

  3. 配置云企业网。

    您需要通过以下操作将SAG vCPE实例连接到云企业网,并在云企业网中加载已创建的VPC实例。操作完成后,SAG vCPE实例和阿里云上VPC实例可学习到对方的路由,SAG vCPE设备可与阿里云VPC内的资源互通。

    1. 智能接入网关管理控制台的左侧导航栏,选择云连接网

    2. 云连接网页面,找到目标云连接网实例,在操作列单击绑定云企业网

    3. 绑定云企业网面板,选择要绑定的云企业网实例,然后单击确定

      您可以通过以下两种方式选择目标云企业网实例,本文选择新建CEN

      • 选择现有CEN:如果您已经创建了云企业网,可以在下拉列表中,选择已创建的云企业网实例进行绑定。

      • 新建CEN:如果您未创建过云企业网,您可以在下方文本框中,输入云企业网实例名称,系统会为您新建云企业网实例并自动进行绑定。

        说明

        云企业网实例名称长度为2~100个字符,以大小写字母或中文开头,可包含数字、下划线(_)或短划线(-)。

    4. 将已经创建的阿里云VPC实例,绑定到此云企业网中。具体操作,请参见加载网络实例

      最终VPC和云连接网加载到云企业网后,如下图所示。云连接网.png

步骤四:配置IDC侧网络

为实现IDC和阿里云资源互通,您还需要在IDC中进行网络配置,配置需要的具体命令请咨询IDC网络管理员。

  1. 配置IDC静态路由示例。

    在IDC网络配置路由,将要访问的阿里云ACK集群网段(如果需要访问云上的容器网段,也需要添加)下一跳指向安装了SAG vCEP的机器IP地址,由该实例完成和阿里云云上服务的互通。

    ip route add 10.77.0.0/16 via 192.168.11.210
    说明

    静态路由示例仅供参考,不同厂商的不同设备可能会不同。

  2. 配置IDC环境的防火墙。

    允许阿里云ACK集群和IDC在私网网段可相互通信。

步骤五:测试连通性

  1. 测试主机连通性。

    1. 登录阿里云VPC内的一个ECS实例。具体操作,请参见连接方式概述

    2. 执行ping命令,访问云下IDC环境中的某台主机实例,验证云上和云下主机网络是否正常。

      经验证,阿里云VPC中的资源与云下IDC中的资源可正常通信,如下图所示。ping.png

  2. 测试容器Pod网络连通性。

    1. 分别在阿里云云上的ACK集群和云下IDC的K8s集群部署测试容器,YAML示例如下。

      apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
      kind: Deployment
      metadata:
        name: nginx-deployment-basic
        labels:
          app: nginx
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
          #  nodeSelector:
          #    env: test-team
            containers:
            - name: nginx
              image: nginx:1.7.9 #替换成您实际的<image_name:tags>。
              ports:
              - containerPort: 80
              resources:
                limits:
                  cpu: "500m"
    2. 进入到ACK集群容器内,执行Ping命令,访问云下IDC的K8s集群中容器Pod的IP,验证云上ACK和云下K8s的Pod网络是否正常。

      经验证,阿里云ACK集群中的Pod与云下IDC中K8s集群的Pod可正常通信,如下图所示。ping2.png

总结

通过SAG vCEP结合云连接网络以及云企业网,您可以快速地完成云上和云下环境的快速组网,实现云上云下的网络互通。在这个过程中,为了降低可能的隐患,建议您提前做好网络规划,避免在生产环境中,由于网络冲突而带来的影响。