默认情况下,系统只为ECI Pod(即ECI实例)分配一个私网IP,如果您的ECI Pod有连接公网的需求,例如需要拉取公网镜像等,您可以为其绑定EIP,或者在所属VPC中创建公网NAT网关,以实现ECI Pod与公网互通。
背景信息
为ECI实例配置公网连接时,支持以下两种方式:
方式 | 说明 | 适用场景 |
绑定EIP | EIP是独立购买的可单独持有的公网IP地址,可以为绑定的ECI实例提供公网服务。更多信息,请参见什么是弹性公网IP和EIP计费概述。 | 单个ECI实例。 例如:您有一个ECI实例用于部署Nginx服务,在创建实例时,您需要为该实例绑定EIP。当Nginx启动时,将自动暴露80端口到EIP。您可以通过EIP地址加端口的方式访问Nginx服务。 |
在所属VPC中创建公网NAT网关 | NAT网关是一种网络地址转换服务,提供NAT代理(SNAT和DNAT)能力。更多信息,请参见什么是NAT网关和公网NAT网关计费。 | 多个ECI实例。 例如:您有多个ECI实例需要从Docker Hub拉取镜像,由于ECI默认不提供公网链接进行公网镜像的拉取,您需要在实例所属VPC中创建公网NAT网关并完成规则配置,否则无法拉取镜像。 |
为ECI实例配置公网连接时,请确保ECI实例所属的安全组已放行相关地址和端口。更多信息,请参见添加安全组规则。
为ECI实例绑定EIP
创建ECI Pod时,您可以在Pod metadata中添加Annotation来绑定已有EIP,或者自动创建并绑定一个EIP。
EIP只支持为所绑定的ECI实例提供公网服务,一个EIP只能绑定一个ECI实例。如果您有多个ECI实例需要连接公网,您需要分别为其绑定EIP,或者在所属VPC中创建公网NAT网关。
绑定已有EIP
Annotation
示例值
说明
k8s.aliyun.com/eci-eip-instanceid
"eip-bp1q5n8cq4p7f6dzu****"
指定EIP,将其绑定到ECI Pod上。
自动创建并绑定EIP
Annotation
示例值
说明
k8s.aliyun.com/eci-with-eip
"true"
配置为true表示自动创建一个EIP,并将其绑定到ECI Pod上。
k8s.aliyun.com/eip-bandwidth
"10"
设置EIP带宽。单位为Mbps。默认为5 Mbps。
k8s.aliyun.com/eip-common-bandwidth-package-id
"cbwp-2zeukbj916scmj51m****"
绑定已有的共享带宽。更多信息,请参见共享带宽。
k8s.aliyun.com/eip-isp
BGP
设置EIP线路类型,仅按量付费的EIP支持指定。取值范围:
BGP(默认值):BGP(多线)线路
BGP_PRO:BGP(多线)精品线路
更多信息,请参见EIP线路类型。
k8s.aliyun.com/eip-internet-charge-type
PayByTraffic
设置EIP的计量方式。取值范围:
PayByBandwidth:按带宽计费
PayByTraffic:按流量计费
更多信息,请参见EIP计费方式。
k8s.aliyun.com/eip-public-ip-address-pool-id
pippool-bp187arfugi543y1s****
指定IP地址池ID。 EIP将从该IP地址池中分配。更多信息,请参见创建和管理IP地址池。
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。
配置示例如下:
在所属VPC中创建公网NAT网关
在VPC中创建公网NAT网关后,公网NAT网关可以提供NAT代理(SNAT和DNAT)功能,使得该VPC中的ECI实例可以连接公网。
功能 | 说明 |
SNAT | 可以为VPC中没有公网IP的ECI实例提供访问公网的代理服务。 |
DNAT | 可以将公网NAT网关绑定的EIP映射给VPC中的ECI实例使用,使其能够面向公网提供服务。 |
在专有网络控制台创建公网NAT网关。具体操作,请参见创建和管理公网NAT网关实例。
如果您的ECI实例需要访问公网,您需要创建SNAT条目。具体操作,请参见创建和管理SNAT条目。
创建时需要注意的参数如下:
参数
描述
SNAT条目粒度
请结合业务组网和安全性等因素进行选择:
VPC粒度:NAT网关所属VPC内的所有ECI实例均可以通过SNAT功能访问公网。
交换机粒度:所选交换机下的ECI实例均可以通过SNAT功能访问公网。
自定义网段粒度:指定网段内的ECI实例均可以通过SNAT功能访问公网。
选择交换机
当SNAT条目粒度选择交换机粒度时,选择用于创建ECI实例的交换机,支持配置多个。
自定义网段
当SNAT条目粒度选择自定义网段粒度时,设置要访问公网的ECI实例的所属网段。
选择公网IP地址
选择NAT网关绑定的EIP(单个或多个),用于访问公网。
说明如果ECI实例已经绑定了EIP,则优先使用ECI实例绑定的EIP来访问公网,而不会使用NAT网关的SNAT功能访问公网。
如果您的ECI实例需要面向公网提供服务,您需要创建DNAT条目。具体操作,请参见创建和管理DNAT条目。
创建时需要注意的参数如下:
参数
描述
选择公网IP地址
选择NAT网关绑定的EIP,用于公网访问。
选择私网IP地址
选择要通过DNAT规则进行公网通信的ECI实例,支持指定ECI实例对应的弹性网卡,或者手动输入ECI实例的私网IP。
端口设置
选择DNAT映射的方式:
任意端口:该方式输入IP映射。任何访问NAT网关所绑定EIP的请求都将转发到目标ECI实例。
具体端口:该方式输入端口映射。NAT网关会将以指定协议和端口访问NAT网关所绑定EIP的请求转发到目标ECI实例的指定端口上。