De forma predeterminada, a los pods de ECI solo se les asigna una dirección IP privada. Para extraer imágenes de un registro público como Docker Hub o exponer el servicio de un pod a Internet, debe proporcionar al pod una ruta hacia Internet.
Existen dos métodos disponibles:
Asociar una dirección IP elástica (EIP) con el pod: asigna una dirección IP pública dedicada directamente al pod. Utilice este método cuando un solo pod requiera su propia dirección pública (por ejemplo, para exponer un servicio NGINX en el puerto 80).
Crear una puerta de enlace NAT de Internet en la VPC: permite que varios pods compartan el acceso saliente a Internet mediante una sola puerta de enlace. Este método es adecuado cuando varios pods necesitan conectarse a Internet, pero no requieren una dirección IP pública dedicada cada uno (por ejemplo, para extraer imágenes de Docker Hub para varios pods).
Antes de habilitar el acceso a Internet, compruebe que las direcciones IP y los puertos correspondientes estén permitidos en el security group al que pertenecen las instancias. Para más información, consulte Add a security group rule.
Notas de uso
Cada EIP se puede asociar con una sola instancia de contenedor elástico (ECI) a la vez. Para asignar direcciones públicas propias a varios pods, asocie una EIP distinta con cada pod o utilice una puerta de enlace NAT de Internet.
Las anotaciones solo surten efecto cuando se crea un pod de ECI. Agregar o modificar anotaciones en un pod existente no tiene ningún efecto.
En los Deployments, agregue las anotaciones en la sección
spec.template.metadata, no en la secciónmetadatade nivel superior.Si un pod tiene una EIP asociada, utiliza dicha EIP directamente para el tráfico saliente y omite la función SNAT de cualquier puerta de enlace NAT en la VPC.
Asociar una EIP con un pod
Agregue anotaciones en la sección metadata del pod durante su creación. Puede asociar una EIP existente o permitir que el sistema cree una automáticamente.
Crear una EIP automáticamente
Establezca k8s.aliyun.com/eci-with-eip en "true" para que el sistema cree una EIP y la asocie automáticamente con el pod. Utilice las siguientes anotaciones para configurar la EIP:
|
Annotation |
Example |
Description |
|
|
|
Crea y asocia una EIP automáticamente |
|
|
|
Ancho de banda máximo en Mbit/s. Valor predeterminado: |
|
|
|
Método de medición. Valores válidos: |
|
|
|
Tipo de línea. Aplica únicamente a las EIP de pay-as-you-go. Valor predeterminado: |
|
|
|
ID de un plan de ancho de banda de EIP existente que se asociará con la EIP. Para más información, consulte What is Internet Shared Bandwidth? |
|
|
|
ID del pool de direcciones IP desde el cual se asigna la EIP. Para más información, consulte Create and manage IP address pools |
Ejemplo: crear automáticamente una EIP con un ancho de banda personalizado
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Creates and associates an EIP automatically
k8s.aliyun.com/eip-bandwidth: "10" # Sets the maximum bandwidth to 10 Mbit/s
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Ejemplo: crear automáticamente una EIP y asociarla con un plan de ancho de banda de EIP
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Creates and associates an EIP automatically
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # Associates an EIP bandwidth plan with the EIP
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Para conocer los detalles de precios de las EIP, consulte Billing overview.
Crear una puerta de enlace NAT de Internet
Una puerta de enlace NAT permite que los pods de una VPC privada accedan a Internet sin una dirección IP pública (SNAT) y, de manera opcional, que el tráfico de Internet llegue a pods específicos (DNAT).
|
Feature |
What it does |
|
SNAT |
Permite que los pods accedan a Internet mediante una EIP compartida. No se asigna ninguna dirección IP pública a los pods individuales |
|
DNAT |
Asigna una EIP asociada con la puerta de enlace NAT a un pod específico, de modo que el pod pueda aceptar tráfico entrante de Internet |
Paso 1: Crear una puerta de enlace NAT de Internet
En la consola de VPC, cree una puerta de enlace NAT de Internet en la VPC donde se ejecutan sus pods. Para consultar las instrucciones detalladas, consulte Create and manage an Internet NAT gateway.
Para conocer los precios de las puertas de enlace NAT, consulte Billing of Internet NAT gateways.
Paso 2: Crear una entrada SNAT (acceso saliente)
Cree una entrada SNAT para que los pods puedan iniciar conexiones hacia Internet. Para consultar las instrucciones, consulte Create and manage SNAT entries.
Preste atención a los siguientes parámetros:
|
Parameter |
Description |
|
SNAT entry |
Determina qué pods utilizan SNAT. Seleccione la opción según su topología de red y sus requisitos de seguridad: Specify VPC (todos los pods de la VPC), Specify vSwitch (los pods conectados a los vSwitches seleccionados) o Specify Custom CIDR Block (los pods dentro de un bloque CIDR específico) |
|
Select vSwitch |
Obligatorio cuando SNAT entry se establece en Specify vSwitch. Seleccione los vSwitches que utilizan sus pods |
|
Custom CIDR block |
Obligatorio cuando SNAT entry se establece en Specify Custom CIDR Block. Introduzca el bloque CIDR que incluye sus pods |
|
Select EIP |
Seleccione una o más EIP asociadas con la puerta de enlace NAT. Los pods utilizan estas EIP para acceder a Internet |
Paso 3: Crear una entrada DNAT (acceso entrante)
Omita este paso si sus pods solo necesitan acceso saliente a Internet.
Para permitir que el tráfico de Internet llegue a un pod específico, cree una entrada DNAT. Para consultar las instrucciones, consulte Create and manage DNAT entries.
Preste atención a los siguientes parámetros:
|
Parameter |
Description |
|
Select EIP |
Seleccione la EIP asociada con la puerta de enlace NAT. El tráfico entrante llega a esta EIP y se reenvía al pod |
|
Select Private IP Address |
Identifique el pod de destino mediante la selección de su interfaz de red elástica (ENI) o introduzca su dirección IP privada |
|
Port Settings |
Seleccione el método de reenvío: Any Port (asignación de direcciones IP; todo el tráfico dirigido a la EIP se reenvía al pod) o Custom Port (asignación de puertos; el tráfico de un protocolo y puerto específicos se reenvía al puerto correspondiente del pod) |
Pasos siguientes
Para conocer los detalles del producto EIP, consulte What is an EIP.
Para conocer los detalles del producto de puertas de enlace NAT, consulte What is NAT Gateway.