如果您的ECI实例有连接公网的需求,则需要绑定EIP。Knative支持在Service中添加Annotation(注解)来绑定已有的EIP,或者创建并绑定一个新的EIP,来实现公网访问。本文介绍如何在Knative中通过Annotation为ECI实例绑定EIP。
前提条件
背景信息
为ECI实例配置公网服务时,通常有以下两种方式:
- 绑定EIP:EIP是独立购买的可单独持有的公网IP地址,可以为绑定的ECI实例提供公网服务。
- 绑定NAT网关:NAT网关是可独立购买的网关产品,绑定EIP后,可以为关联VPC下的所有ECI实例提供公网服务。
Knative仅支持通过为ECI绑定EIP的方式实现公网访问,关于ECI实例连接公网的更多信息,请参见连接公网。
通过Annotation为ECI实例绑定EIP
您可以在Knative的Service中添加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的线路类型。 取值范围:
|
- 示例一:指定已有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