All Products
Search
Document Center

Container Service for Kubernetes:Associate an EIP with the elastic container instance on which a Knative Service runs

Last Updated:Nov 05, 2024

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

k8s.aliyun.com/eci-eip-instanceid

Specifies an existing EIP that you want to associate.

k8s.aliyun.com/eci-with-eip

Specifies whether to automatically create an EIP and associate the EIP with the elastic container instance.

k8s.aliyun.com/eip-bandwidth

Specifies the maximum bandwidth for the EIP. Unit: Mbit/s. Default value: 5.

k8s.aliyun.com/eip-common-bandwidth-package-id

Specifies the EIP bandwidth plan that you want to use.

k8s.aliyun.com/eip-isp

Specifies the line type of the EIP.

Valid values:

  • BGP: BGP (Multi-ISP) line

  • BGP_PRO: BGP (Multi-ISP) Pro line

  • 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.