Updated on 2024-02-23 GMT+08:00

Creating a Dynamic EIPPool

A dynamic EIPPool dynamically creates underlying EIP resources based on your configuration and creates EIP objects in the CCI namespace.

The following example shows how to create a dynamic EIPPool named eippool-demo1. For details about the fields, see Table 1.

  • To dynamically create an EIPPool that uses a dedicated bandwidth, you do not need to specify the bandwidth ID. Example:
apiVersion: crd.yangtse.cni/v1
kind: EIPPool                       
metadata:
  name: eippool-demo1               
  namespace: xxx                     # Namespace where the EIPPool is located, which must be the same as that of the pod.
spec:
  amount: 3                          # Number of EIPs in the EIPPool
  eipAttributes:                   
    networkType: 5_bgp              
    ipVersion: 4                    
    bandwidth:                                             
      name: cci-eippool-demo1  
      chargeMode: bandwidth          
      shareType: PER                 
      size: 5                        
  • To dynamically create an EIPPool that uses a shared bandwidth, you must and only need to specify the bandwidth ID. Example:
apiVersion: crd.yangtse.cni/v1
kind: EIPPool                       
metadata:
  name: eippool-demo1               
  namespace: xxx                    
spec:
  amount: 3
  eipAttributes:                   
    networkType: 5_bgp               
    ipVersion: 4                     
    bandwidth:                       
      id: xxx                           
      shareType: WHOLE               # If the shareType is WHOLE, the bandwidth ID must be specified.
Table 1 Parameter description

Parameter

Description

Constraint

name

Name of the EIPPool

It is recommended that the name be less than or equal to 29 bytes. If it exceeds 29 bytes, extra characters will be truncated, but the use of the EIPPool is not affected.

namespace

Namespace to which the EIPPool belongs

The value must be the same as the namespace of the pod.

amount

Number of EIPs in the EIPPool

The value ranges from 0 to 500.

networkType

EIP type

The value can be 5_telcom (China Telecom), 5_union (China Unicom), 5_bgp (dynamic BGP), 5_sbgp (static BGP), or 5_ipv6.

The configured value must be supported by the system.

ipVersion

EIP version

The value can be 4 (IPv4 address) or 6 (IPv6 address).

The configured value must be supported by the system.

If this parameter is left blank or is an empty string, an IPv4 address is assigned by default.

chargeMode

Whether the billing is based on traffic or bandwidth

The value can be bandwidth or traffic. The value bandwidth indicates that the bandwidth is billed by fixed bandwidth. The value traffic indicates that the bandwidth is billed by traffic. If this parameter is left blank, the default value is bandwidth. For IPv6 addresses, the default value is bandwidth outside China and is traffic in China.

shareType

Bandwidth type

The value can be PER (dedicated bandwidth) or WHOLE (shared bandwidth).

If this parameter is set to WHOLE, the bandwidth ID must be specified.

id

Bandwidth ID

The value can be the ID of the bandwidth whose type is set to WHOLE.

size

Bandwidth

The value ranges from 1 to 200.

Unit: Mbit/s

The specific range may vary with the configuration in each region. For the specific range, see the console.

For the function description, value range, and constraints of the above EIP-related fields in the YAML file, see the EIP parameters page.

Run the following command to view the EIPPool details. (-n indicates the namespace to which the EIPPool belongs.)

If the EIPPool name eippool-demo1 is displayed in the command output, the dynamic EIPPool is created successfully.

# kubectl get eippool -n $namespace_name
NAME                  EIPS           USAGE         AGE
eippool-demo1                        0/3           39m