连接公网
连接公网
如果您的BCI实例(即BCI Pod)有连接公网的需求,则需要配置NAT网关或者弹性公网IP,并支付相应的网络费用。
本文介绍如何为您的BCI实例绑定EIP,或者为BCI实例所属的VPC绑定NAT网关,以实现BCI实例与公网互通。
背景信息
为BCI实例配置公网服务时,支持以下两种方式:
方式 | 说明 | 费用 |
---|---|---|
BCI实例绑定EIP | EIP是独立购买的可单独持有的公网IP地址,可以绑定到BCI实例上提供公网服务。具体详情请参见: 百度云EIP介绍。 | EIP支持按固定带宽或者按使用流量计费。 |
BCI实例所属的VPC绑定NAT网关 | NAT网关是可独立购买的网关产品,绑定EIP后,可以为关联VPC下的所有BCI实例提供公网服务。具体详情请参见: 百度云NAT网关介绍。 | NAT网关支持包年包月和按量付费。NAT网关需绑定EIP后才能具备公网能力,即除NAT网关费用外,您还需支付EIP费用。 |
您可以根据业务需要,选择合适的方式来配置公网服务:
- 示例场景一:单个BCI实例配置Nginx外网访问
如果您有一个BCI实例用于部署Nginx服务,在创建实例时,您需要为该实例绑定EIP。当Nginx启动时,将自动暴露80端口到EIP。您可以通过EIP地址加端口的方式访问该BCI实例的Nginx服务。
- 示例场景二:多个BCI实例拉取Docker Hub镜像
BCI默认不提供外部公网链路进行公网镜像的拉取。如果您有多个BCI实例需要从Docker Hub拉取镜像,您可以为BCI实例所属的VPC绑定NAT网关来实现公网访问,否则镜像将拉取失败。
注意:
如果BCI实例已经绑定了EIP,则优先使用BCI实例绑定的EIP来访问公网,而不会使用NAT网关的SNAT功能访问公网。
操作指南
连接公网方式一:为BCI实例绑定EIP
创建BCI Pod时,您可以直接为Pod绑定EIP。支持在Pod metadata中添加Annotation来自动创建并绑定一个EIP。 相关Annotation如下:
Annotation | 示例值 | 说明 |
---|---|---|
bci.virtual-kubelet.io/bci-create-eip | "true" | 是否自动创建并绑定EIP |
bci.virtual-kubelet.io/bci-create-eip-route-type | "BGP" | 设置EIP的线路类型。不指定时,默认为BGP类型。可选值: BGP:标准型BGP BGP_S:增强型BGP ChinaMobile:中国移动 ChinaUnicom:中国联通 ChinaTelcom:中国电信 |
bci.virtual-kubelet.io/bci-create-eip-bandwidth | "10" | 设置EIP带宽。带宽能力和EIP线路类型相关。带宽区间: BGP:1~200 Mbps BGP_S:100~5000 Mbps 移动、联通、电信:1~5000 Mbps |
bci.virtual-kubelet.io/bci-create-eip-paymethod | "ByBandwidth" | 设置EIP计费方式: ByTraffic:流量 ByBandwidth:带宽 |
bci.virtual-kubelet.io/bci-eip-ip | "127.0.0.1" | 绑定已有的EIP。且此EIP状态必须可用(Available)。 限定条件:一个EIP只能成功绑定到一个BCI实例上,若使用deployment方式,副本数replicas需设置为1,否则可能导致创建失败。 |
注意:
如EIP的线路类型选择移动、联通、电信,需要先提交工单申请百度云EIP单线白名单,否则该BCI Pod会创建失败。
如EIP的线路类型选择增强BGP(BGP_S)且要按照流量付费,需要先提交工单申请百度云EIP计费白名单,否则该BCI Pod会创建失败。
配置示例:
- 示例一:使用默认参数自动创建EIP(默认线路类型为BGP,带宽为100Mbps)
apiVersion: v1
kind: Pod
metadata:
annotations:
"bci.virtual-kubelet.io/bci-create-eip": "true" # 自动创建并绑定EIP
name: test
spec:
nodeSelector:
type: "virtual-kubelet"
tolerations:
- key: "virtual-kubelet.io/provider"
operator: "Equal"
value: "baidu"
effect: "NoSchedule"
containers:
- image: hub.baidubce.com/cce/nginx-alpine-go
name: nginx
resources:
requests:
cpu: 0.5
memory: 1Gi
restartPolicy: Always
- 示例二:自动创建EIP,并设置EIP带宽和线路类型
apiVersion: v1
kind: Pod
metadata:
annotations:
"bci.virtual-kubelet.io/bci-create-eip": "true" # 自动创建并绑定EIP
"bci.virtual-kubelet.io/bci-create-eip-route-type": "BGP_S" # 设置EIP线路类型
"bci.virtual-kubelet.io/bci-create-eip-bandwidth": "200" # 设置EIP带宽
name: test
spec:
nodeSelector:
type: "virtual-kubelet"
tolerations:
- key: "virtual-kubelet.io/provider"
operator: "Equal"
value: "baidu"
effect: "NoSchedule"
containers:
- image: hub.baidubce.com/cce/nginx-alpine-go
name: nginx
resources:
requests:
cpu: 0.5
memory: 1Gi
restartPolicy: Always
- 示例三:绑定已有的EIP
apiVersion: v1
kind: Pod
metadata:
annotations:
"bci.virtual-kubelet.io/bci-eip-ip": "127.0.0.1" # 指定已经存在的EIP
name: test
spec:
nodeSelector:
type: "virtual-kubelet"
tolerations:
- key: "virtual-kubelet.io/provider"
operator: "Equal"
value: "baidu"
effect: "NoSchedule"
containers:
- image: hub.baidubce.com/cce/nginx-alpine-go
name: nginx
resources:
requests:
cpu: 0.5
memory: 1Gi
restartPolicy: Always
查询BCI实例绑定的EIP信息
如果BCI实例已成功绑定EIP,则该实例yaml信息的Annotations中将包含以下字段:
Annotation | 示例值 | 说明 |
---|---|---|
bci.virtual-kubelet.io/bci-bound-eip-id | "ip-xxxx" | EIP实例id |
bci.virtual-kubelet.io/bci-bound-eip-ip | "127.0.0.1" | EIP公网地址 |
bci.virtual-kubelet.io/bci-bound-eip-bandwidth | "100" | EIP公网带宽 |
bci.virtual-kubelet.io/bci-bound-eip-paymethod | "ByTraffic" | EIP计费方式 |
bci.virtual-kubelet.io/bci-bound-eip-route-type | "BGP" | EIP线路类型 |
连接公网方式二:为VPC绑定NAT网关
您可以在专有网络控制台为VPC绑定NAT网关,并为NAT网关绑定EIP,使其能够提供NAT代理(SNAT和DNAT)功能:
- SNAT功能:可以为VPC中没有公网IP的BCI实例提供访问公网的代理服务。
- DNAT功能:可以将NAT网关绑定的EIP映射给VPC中的BCI实例使用,使其能够面向公网提供服务。
操作步骤如下:
- 登录私有网络VPC控制台。
- 在顶部菜单栏,选择地域。
- 在左侧菜单栏,选择“网络连接”->“NAT网关”,进入NAT网关页面,创建NAT网关。
a. 单击创建NAT网关。
b. 完成购买NAT网关相关的参数配置。配置时,“所在网络”选择BCI实例所属的VPC。更多信息,请参见NAT网关。
c. 单击“确认订单”后,确认配置信息和费用,再单击“提交订单”。
- 在弹性公网IP控制台,创建EIP。
a. 在顶部菜单栏,选择地域后,单击“创建实例”。
b. 完成购买EIP相关的参数配置。更多信息,请参见创建EIP实例。
c. 单击“确认订单”后,确认配置信息和费用,再单击“提交订单”。
- 绑定EIP与NAT网关。
a. 在NAT网关页面,找到要操作的NAT网关,单击右侧“更多”->“绑定公网IP”。
b. 在弹出的对话框中选择要绑定的EIP,然后单击确定。
- 如果您的BCI实例需要访问公网,您需要为NAT网关创建SNAT条目,并在VPC中添加该NAT网关的路由。
a. 在NAT网关页面,找到要操作的NAT网关,单击右侧“设置SNAT”。
b. 单击“添加SNAT条目”。
c. 配置SNAT相关条目的参数,然后单击确定。配置时,“源网段”选择BCI所属的子网。更多信息,请参见NAT网关的配置SNAT表。
d. 在私有网络页面,单击要操作的VPC名称进入VPC详情页,单击“路由表”,然后单击“添加路由”并配置路由参数。更多信息,请参见路由表的添加路由。
- 如果您的BCI实例需要面向公网提供服务,您需要为NAT网关创建DNAT条目。
a. 在NAT网关页面,找到要操作的NAT网关,单击右侧“设置DNAT”。
b. 单击“添加DNAT条目”。
c. 配置DNAT相关条目的参数,然后单击确定。更多信息,请参见NAT网关的配置DNAT表。