阿里云首页 弹性容器实例

连接公网

如果您的ECI实例有连接公网的需求,则需要配置NAT网关或者弹性公网IP,并支付相应的网络费用。本文介绍如何为ECI实例绑定EIP,或者为ECI实例所属VPC绑定NAT网关,以实现ECI实例与公网互通。

背景信息

为ECI实例配置公网服务时,支持以下两种方式:

方式

说明

费用

绑定EIP

EIP是独立购买的可单独持有的公网IP地址,可以为绑定的ECI实例提供公网服务。

EIP支持包年包月和按量付费,按固定带宽或者使用流量计费。EIP绑定至ECI实例时,免除配置费用,但可能收取绑定费用。更多信息,请参见EIP计费说明

绑定NAT网关

NAT网关是可独立购买的网关产品,绑定EIP后,可以为关联VPC下的所有ECI实例提供公网服务。

NAT网关支持包年包月和按量付费。NAT网关需绑定EIP后才能具备公网能力,即除NAT网关费用外,您还需支付EIP费用。更多信息,请参见NAT网关计费说明

您可以根据业务需要,选择合适的方式来配置公网服务:

  • 示例场景一:单个ECI实例配置Nginx外网访问

    如果您有一个ECI实例用于部署Nginx服务,在创建实例时,您需要为该实例绑定EIP。当Nginx启动时,将自动暴露80端口到EIP。您可以通过EIP地址加端口的方式访问Nginx服务。

  • 示例场景二:多个ECI实例拉取Docker Hub镜像

    ECI默认不提供外部公网链路进行公网镜像的拉取。如果您有多个ECI实例需要从Docker Hub拉取镜像,您需要为ECI实例所属的VPC绑定NAT网关来实现公网访问,否则镜像将拉取失败。

说明

为ECI实例配置公网服务时,请确保ECI实例所属的安全组已放行相关地址和端口。更多信息,请参见添加安全组规则

方式一:为ECI实例绑定EIP

创建ECI实例时,您可以直接为ECI实例绑定EIP。方式如下:

说明

EIP只支持为所绑定的ECI实例提供公网服务,一个EIP只能绑定一个ECI实例。如果您有多个ECI实例需要连接公网,您需要分别为其绑定EIP,或者为所属VPC绑定NAT网关。

Kubernetes方式

您可以在Pod metadata中添加Annotation来绑定已有的EIP,或者自动创建并绑定一个EIP。相关配置项如下:

配置项

说明

k8s.aliyun.com/eci-eip-instanceid

绑定已有的EIP。

k8s.aliyun.com/eci-with-eip

是否自动创建并绑定EIP。

k8s.aliyun.com/eip-bandwidth

设置EIP带宽。默认为5 Mbps。

k8s.aliyun.com/eip-common-bandwidth-package-id

绑定已有的共享带宽包。

k8s.aliyun.com/eip-isp

设置EIP的线路类型。取值范围:

  • BPG:BGP(多线)线路

  • BGP_PRO:BGP(多线)精品线路

k8s.aliyun.com/eip-internet-charge-type

设置EIP的计量方式。取值范围:

  • PayByBandwidth:按带宽计费

  • PayByTraffic:按流量计费

  • 示例一:指定已有EIP

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      annotations:
        k8s.aliyun.com/eci-eip-instanceid: "eip-bp1q5n8cq4p7f6dzu****"    #指定已有的EIP进行绑定
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/jovi/nginx:alpine
        imagePullPolicy: Always
        name: nginx
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
      restartPolicy: OnFailure
  • 示例二:自动创建EIP,并设置EIP带宽

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      annotations:
        k8s.aliyun.com/eci-with-eip: "true"   #自动创建并绑定EIP
        k8s.aliyun.com/eip-bandwidth: "10"   #设置EIP带宽
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/jovi/nginx:alpine
        imagePullPolicy: Always
        name: nginx
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
      restartPolicy: OnFailure
  • 示例三:自动创建EIP,并绑定共享带宽包

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      annotations:
        k8s.aliyun.com/eci-with-eip: "true"   #自动创建并绑定EIP
        k8s.aliyun.com/eip-common-bandwith-package-id: "cbwp-2zeukbj916scmj51m****"  #绑定共享带宽包
    spec:
      containers:
      - image: registry-vpc.cn-hangzhou.aliyuncs.com/jovi/nginx:alpine
        imagePullPolicy: Always
        name: nginx
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
      restartPolicy: OnFailure

OpenAPI方式

调用CreateContainerGroup接口创建ECI实例时,您可以通过EipInstanceId参数来绑定已有的EIP,或者通过AutoCreateEip和EipBandwidth参数来创建并绑定一个EIP。相关参数说明如下表所示。更多信息,请参见CreateContainerGroup

名称

类型

示例值

描述

EipInstanceId

String

eip-uf66jeqopgqa9hdn****

指定EIP,将其绑定到ECI实例上。

AutoCreateEip

Boolean

true

是否自动创建一个EIP,并绑定到ECI实例上。

EipBandwidth

Integer

5

EIP的带宽,默认为5 Mbps。当AutoCreateEip取值为true时,可以设置该参数。

控制台方式

创建ECI实例时,完成基础配置后,在其他设置处,您可以直接为ECI实例绑定EIP。支持使用已有EIP或者自动创建EIP,如下图所示。

绑定EIP

方式二:为VPC绑定NAT网关

您可以在专有网络控制台为VPC绑定NAT网关,并为NAT网关绑定EIP,使其能够提供NAT代理(SNAT和DNAT)功能:

  • SNAT功能:可以为VPC中没有公网IP的ECI实例提供访问公网的代理服务。

  • DNAT功能:可以将NAT网关绑定的EIP映射给VPC中的ECI实例使用,使其能够面向公网提供服务。

操作步骤如下:

  1. 登录专有网络控制台

  2. 在顶部菜单栏左上角处,选择地域。

  3. NAT网关页面,创建NAT网关。

    1. 单击创建NAT网关

    2. 完成购买NAT网关相关的参数配置。

      配置时,请选择ECI实例所属的地域和可用区,以及对应的VPC和交换机。更多信息,请参见购买NAT网关

    3. 确认配置信息和费用,单击立即购买

  4. 弹性公网IP页面,创建EIP。

    1. 单击创建弹性公网IP

    2. 完成购买EIP相关的参数配置。

      配置时,请选择ECI实例所属的地域。更多信息,请参见申请新EIP

    3. 确认配置信息和费用,单击立即购买

  5. 绑定EIP与NAT网关。

    1. NAT网关页面,找到目标NAT网关,单击对应的立即绑定

    2. 在弹出的对话框中选择要绑定的EIP,然后单击确定

  6. 如果您的ECI实例需要访问公网,您需要创建SNAT条目。

    1. NAT网关页面,找到目标NAT网关,单击对应的设置SNAT

    2. 单击创建SNAT条目

    3. 配置SNAT相关条目的参数。

      配置时,需要关注的参数如下表所示。更多信息,请参见创建SNAT实现访问公网服务

      参数

      描述

      SNAT条目粒度

      选择交换机粒度

      选择交换机

      选择用于创建ECI实例的交换机,支持配置多个。配置后,交换机下所有ECI实例均可以通过SNAT功能访问公网。

      选择公网IP地址

      选择使用单IP,然后选择NAT网关绑定的EIP,用于访问公网。

    4. 单击确定

    说明

    如果ECI实例已经绑定了EIP,则优先使用ECI实例绑定的EIP来访问公网,而不会使用NAT网关的SNAT功能访问公网。

  7. 如果您的ECI实例需要面向公网提供服务,您需要创建DNAT条目。

    1. NAT网关页面,找到目标NAT网关,单击对应的设置DNAT

    2. 单击创建DNAT条目

    3. 配置DNAT相关条目的参数。

      配置时,需要关注的参数如下表所示。更多信息,请参见创建DNAT提供公网访问服务

      参数

      描述

      选择公网IP地址

      选择NAT网关绑定的EIP,用于公网访问。

      选择私网IP地址

      选择要通过DNAT规则进行公网通信的ECI实例,支持指定ECI实例对应的弹性网卡,或者手动输入ECI实例的私网IP。

      端口设置

      选择DNAT映射的方式:

      • 任意端口:该方式输入IP映射。任何访问NAT所绑定EIP的请求都将转发到目标ECI实例。

      • 具体端口:该方式输入端口映射。NAT网关会将以指定协议和端口访问NAT所绑定EIP的请求转发到目标ECI实例的指定端口上。

    4. 单击确定