By default, the system assigns only a private IP address to an elastic container instance. If you want to connect an elastic container instance to the Internet, for example, to pull an image over the Internet, you can associate a new or existing elastic IP address (EIP) with the instance by adding annotations. You can also specify the bandwidth limit or associate a bandwidth plan for the EIP when the system creates it.
Prerequisites
Knative has been deployed in your cluster. For more information, see Deploy Knative.
Enable Internet access
You can use one of the following methods to enable Internet access for an elastic container instance:
Associate an EIP with the elastic container instance: EIPs are public IP addresses that can be separately purchased and managed. You can enable Internet access for an elastic container instance by associating an EIP with the instance.
Associate an EIP with a NAT gateway: NAT gateways are Internet gateways that can be separately purchased. After you associate an EIP with a NAT gateway, the NAT gateway can provide Internet services for all elastic container instances that reside in the virtual private cloud (VPC) to which the NAT gateway belongs.
Knative allows you to enable Internet access for an elastic container instance only by associating an EIP with the elastic container instance. For more information about how to enable Internet access for an elastic container instance, see Enable Internet access.
Use an annotation to associate an EIP with an elastic container instance
You can use an annotation to associate an existing EIP or create an EIP and associate the EIP with the elastic container instance on which a Knative Service is deployed. The following table describes the annotations that you can use to configure the EIP.
Annotation | Description |
| Specifies an existing EIP that you want to associate. |
| Specifies whether to automatically create an EIP and associate the EIP with the elastic container instance. |
| Specifies the maximum bandwidth for the EIP. Unit: Mbit/s. Default value: 5. |
| Specifies the EIP bandwidth plan that you want to use. |
| Specifies the line type of the EIP. Valid values:
|
Example 1: Associate an existing 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****" # Specify an existing EIP that you want to associate. spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
Example 2: Create and associate an EIP and specify the bandwidth limit of the 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" # Create and associate an EIP. k8s.aliyun.com/eip-bandwidth: "10" # Specify the bandwidth limit of the EIP. spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
Example 3: Create and associate an EIP and associate an EIP bandwidth plan with the 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" # Create and associate an EIP. k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # Associate an EIP bandwidth plan with the EIP. spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
References
For more information about how to configure a certificate to access Services over HTTPS through a custom domain name, see Configure a certificate to access Services over HTTPS.