在Knative中为ECI绑定EIP实现公网访问

默认情况下,系统只为ECI实例分配一个私网IP。如果您的Knative服务有连接公网的需求,例如拉取公网镜像等,您可以通过添加Annotation为其使用的ECI实例绑定已有的EIP或创建一个新EIP。自动创建EIP时,您还可以同步设置EIP带宽、绑定共享带宽包等。

前提条件

已在集群中部署Knative,请参见部署Knative

如何实现公网访问

为ECI实例配置公网服务时,通常有以下两种方式:

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

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

Knative仅支持通过为ECI绑定EIP的方式实现公网访问,关于ECI实例连接公网的更多信息,请参见连接公网

通过Annotation为ECI实例绑定EIP

您可以在Knative的Service中添加Annotation来绑定已有的EIP,或者创建并绑定一个新的EIP,来实现公网访问。

Annotation

描述

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(多线)精品线路。

示例一:指定已有EIP

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-eip-instanceid: "eip-bp1q5n8cq4p7f6dzu****"    # 指定已有的EIP进行绑定。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56

示例二:自动创建EIP,并设置EIP带宽

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-with-eip: "true"   # 自动创建并绑定EIP。
        k8s.aliyun.com/eip-bandwidth: "10"   # 设置EIP带宽。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56

示例三:自动创建EIP,并绑定共享带宽包

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-with-eip: "true"   # 自动创建并绑定EIP。
        k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****"  #绑定共享带宽包。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56

相关文档

您可以为自定义域名配置相应的HTTPS证书,请参见配置HTTPS证书访问