搜索本产品文档关键词
连接公网
所有文档
menu

容器实例 BCI

连接公网

连接公网

如果您的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)
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    "bci.virtual-kubelet.io/bci-create-eip": "true"  # 自动创建并绑定EIP
6  name: test
7spec:
8  nodeSelector:
9    type: "virtual-kubelet"
10  tolerations:
11  - key: "virtual-kubelet.io/provider"
12    operator: "Equal"
13    value: "baidu"
14    effect: "NoSchedule"
15  containers:
16  - image: hub.baidubce.com/cce/nginx-alpine-go
17    name: nginx
18    resources:
19      requests:
20        cpu: 0.5
21        memory: 1Gi
22  restartPolicy: Always
  • 示例二:自动创建EIP,并设置EIP带宽和线路类型
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    "bci.virtual-kubelet.io/bci-create-eip": "true"              # 自动创建并绑定EIP
6    "bci.virtual-kubelet.io/bci-create-eip-route-type": "BGP_S"  # 设置EIP线路类型
7    "bci.virtual-kubelet.io/bci-create-eip-bandwidth": "200"     # 设置EIP带宽
8  name: test
9spec:
10  nodeSelector:
11    type: "virtual-kubelet"
12  tolerations:
13  - key: "virtual-kubelet.io/provider"
14    operator: "Equal"
15    value: "baidu"
16    effect: "NoSchedule"
17  containers:
18  - image: hub.baidubce.com/cce/nginx-alpine-go
19    name: nginx
20    resources:
21      requests:
22        cpu: 0.5
23        memory: 1Gi
24  restartPolicy: Always
  • 示例三:绑定已有的EIP
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    "bci.virtual-kubelet.io/bci-eip-ip": "127.0.0.1"    # 指定已经存在的EIP
6  name: test
7spec:
8  nodeSelector:
9    type: "virtual-kubelet"
10  tolerations:
11  - key: "virtual-kubelet.io/provider"
12    operator: "Equal"
13    value: "baidu"
14    effect: "NoSchedule"
15  containers:
16  - image: hub.baidubce.com/cce/nginx-alpine-go
17    name: nginx
18    resources:
19      requests:
20        cpu: 0.5
21        memory: 1Gi
22  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实例使用,使其能够面向公网提供服务。

操作步骤如下:

  1. 登录私有网络VPC控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧菜单栏,选择“网络连接”->“NAT网关”,进入NAT网关页面,创建NAT网关。

    1. 单击创建NAT网关。
    2. 完成购买NAT网关相关的参数配置。配置时,“所在网络”选择BCI实例所属的VPC。更多信息,请参见NAT网关
    3. 单击“确认订单”后,确认配置信息和费用,再单击“提交订单”。
  4. 弹性公网IP控制台,创建EIP。

    1. 在顶部菜单栏,选择地域后,单击“创建实例”。
    2. 完成购买EIP相关的参数配置。更多信息,请参见创建EIP实例
    3. 单击“确认订单”后,确认配置信息和费用,再单击“提交订单”。
  5. 绑定EIP与NAT网关。

    1. 在NAT网关页面,找到要操作的NAT网关,单击右侧“更多”->“绑定公网IP”。
    2. 在弹出的对话框中选择要绑定的EIP,然后单击确定。
  6. 如果您的BCI实例需要访问公网,您需要为NAT网关创建SNAT条目,并在VPC中添加该NAT网关的路由。

    1. 在NAT网关页面,找到要操作的NAT网关,单击右侧“设置SNAT”。
    2. 单击“添加SNAT条目”。
    3. 配置SNAT相关条目的参数,然后单击确定。配置时,“源网段”选择BCI所属的子网。更多信息,请参见NAT网关的配置SNAT表。
    4. 在私有网络页面,单击要操作的VPC名称进入VPC详情页,单击“路由表”,然后单击“添加路由”并配置路由参数。更多信息,请参见路由表的添加路由。
  7. 如果您的BCI实例需要面向公网提供服务,您需要为NAT网关创建DNAT条目。

    1. 在NAT网关页面,找到要操作的NAT网关,单击右侧“设置DNAT”。
    2. 单击“添加DNAT条目”。
    3. 配置DNAT相关条目的参数,然后单击确定。更多信息,请参见NAT网关的配置DNAT表。
上一篇
镜像
下一篇
支持自定义DNSConfig