Requisitos de red

Requisitos de red

Requisitos de red externa

Anthos en equipos físicos requiere una conexión a Internet para fines operativos. Anthos en equipos físicos recupera componentes de los clústeres de Container Registry, y los clústeres se registran con Connect.

Puedes conectarte a Google mediante la Internet pública a través de HTTPS, una red privada virtual (VPN) o una conexión de interconexión dedicada.

Si las máquinas que usas para la estación de trabajo de administrador y los nodos del clúster usan un servidor proxy a fin de acceder a Internet, el servidor proxy debe permitir algunas conexiones específicas. Para obtener más detalles, consulta la sección de requisitos previos de Instala detrás de un proxy.

Requisitos de red interna

Los clústeres de Anthos en equipos físicos pueden funcionar con conectividad de capa 2 o capa 3 entre nodos del clúster, pero requieren que los nodos del balanceador de cargas tengan conectividad de capa 2. Los nodos del balanceador de cargas pueden ser los nodos del plano de control o un conjunto de nodos dedicado. Para obtener más información, consulta Elige y configura los balanceadores de cargas.

El requisito de conectividad de capa 2 se aplica si ejecutas el balanceador de cargas en el grupo de nodos del plano de control o en un conjunto dedicado de nodos.

Los requisitos para las máquinas del balanceador de cargas son los siguientes:

  • Todos los balanceadores de cargas de un clúster determinado se encuentran en el mismo dominio de capa 2.
  • Todas las direcciones IP virtuales (VIP) deben estar en la subred de la máquina del balanceador de cargas y pueden enrutarse a la puerta de enlace de la subred.
  • Los usuarios son responsables de permitir el tráfico de balanceador de cargas de entrada.

Herramientas de redes de pods

Los clústeres de Anthos en equipos físicos 1.7.0 y versiones posteriores te permiten configurar hasta 250 Pods por nodo. Kubernetes asigna un bloque de enrutamiento entre dominios sin clases (CIDR) a cada nodo para que cada pod pueda tener una dirección IP única. El tamaño del bloque CIDR corresponde al número máximo de Pods por nodo. En la siguiente tabla, se muestra el tamaño del bloque CIDR que Kubernetes asigna a cada nodo en función de los Pods máximos configurados por nodo:

Cantidad máxima de Pods por nodo Bloque CIDR por nodo Cantidad de direcciones IP
32 /26 64
33 – 64 /25 128
65 – 128 /24 256
129 - 250 /23 512

Ejecutar 250 Pods por nodo requiere que Kubernetes reserve un bloque CIDR /23 para cada nodo. Si suponemos que tu clúster usa el valor predeterminado de /16 para el campo clusterNetwork.pods.cidrBlocks, tu clúster tiene un límite de (2(23-16))=128. nodos. Si planeas aumentar el clúster más allá de este límite, puedes aumentar el valor de clusterNetwork.pods.cidrBlocks o disminuir el valor de nodeConfig.podDensity.maxPodsPerNode.

Implementación de clúster de usuario único con alta disponibilidad

En el siguiente diagrama, se ilustran varios conceptos clave de red para Anthos en equipos físicos en una posible configuración de red.

Configuración típica de red de Anthos en equipos físicos

Considera la siguiente información para cumplir con los requisitos de red:

  • Los nodos del plano de control ejecutan los balanceadores de cargas y todos tienen conectividad de capa 2, mientras que otras conexiones, incluidos los nodos trabajadores, solo requieren conectividad de capa 3.
  • Los archivos de configuración definen las direcciones IP para los grupos de nodos trabajadores. Los archivos de configuración también definen las VIP para los siguientes fines:
    • Servicios
    • Ingress
    • Controla el acceso al plano a través de la API de Kubernetes
  • Necesitas una conexión a Google Cloud.

Uso de puertos

En esta sección, se muestra cómo se usan los puertos UDP y TCP en los nodos del clúster y del balanceador de cargas.

Nodos de plano de control

ProtocoloDirecciónIntervalo de puertoObjetivoUsado por
UDPEntrante6081Encapsulamiento GENEVEPropio
TCPEntrante22Aprovisionamiento y actualizaciones de los nodos del clúster de administradorEstación de trabajo de administrador
TCPEntrante6444Servidor de API de KubernetesTodas
TCPEntrante2379 - 2380API del cliente del servidor de etcdkube-apiserver y etcd
TCPEntrante10250API kubeletPlano de control y propio
TCPEntrante10251kube-schedulerPropio
TCPEntrante10252kube-controller-managerPropio
TCPEntrante10256Verificación de estado del nodoAll
TCPAmbos4240Verificación de estado de CNITodas

Nodos trabajadores

ProtocoloDirecciónIntervalo de puertoObjetivoUsado por
TCPEntrante22Aprovisionamiento y actualizaciones de nodos de clústeres de usuariosNodos del clúster del administrador
UDPEntrante6081Encapsulamiento GENEVEPropio
TCPEntrante10250API kubeletPlano de control y propio
TCPEntrante10256Verificación de estado del nodoAll
TCPEntrante30000: 32767NodePort serviciosPropio
TCPAmbos4240Verificación de estado de CNITodas

Nodos del balanceador de cargas

ProtocoloDirecciónIntervalo de puertoObjetivoUsado por
TCPEntrante22Aprovisionamiento y actualizaciones de nodos de clústeres de usuariosNodos del clúster del administrador
UDPEntrante6081Encapsulamiento GENEVEPropio
TCPEntrante443*Administración de clústeresTodas
TCPAmbos4240Verificación de estado de CNITodas
TCPEntrante7946Verificación de estado de Metal LBNodos del balanceador de cargas
UDPEntrante7946Verificación de estado de Metal LBNodos del balanceador de cargas
TCPEntrante10256Verificación de estado del nodoAll

* Este puerto se puede configurar en la configuración del clúster mediante el campo controlPlaneLBPort.

Requisitos de los puertos para varios clústeres

En una configuración de varios clústeres, los clústeres agregados deben incluir los siguientes puertos para comunicarse con el clúster de administrador.

ProtocoloDirecciónIntervalo de puertoObjetivoUsado por
TCPEntrante22Aprovisionamiento y actualizaciones de nodos de clústeresTodos los nodos
TCPEntrante443*Servidor de la API de Kubernetes para el clúster agregadoPlano de control y nodos del balanceador de cargas

* Este puerto se puede configurar en la configuración del clúster mediante el campo controlPlaneLBPort.

Configura puertos con firewalld

No es necesario que inhabilites el firewall para ejecutar clústeres de Anthos en equipos físicos en Red Hat Enterprise Linux (RHEL) o CentOS. Para usar un firewall, debes abrir los puertos UDP y TCP que usan los nodos del plano del control, trabajador y balanceador de cargas, como se describe en Uso del puerto en esta página. En los siguientes parámetros de configuración de ejemplo, se muestra cómo puedes abrir puertos con firewall-cmd, la utilidad de línea de comandos de firewall. Debes ejecutar los comandos como usuario raíz.

Configuración de ejemplo del nodo del plano de control

En el siguiente bloque de comandos, se muestra un ejemplo de cómo puedes abrir los puertos necesarios en servidores que ejecutan nodos del plano de control:

firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=4240/tcp
firewall-cmd --permanent --zone=public --add-port=6444/tcp
firewall-cmd --permanent --zone=public --add-port=6081/udp
firewall-cmd --permanent --zone=public --add-port=10250-10252/tcp
firewall-cmd --permanent --zone=public --add-port=10256/tcp
firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
firewall-cmd --permanent --new-zone=k8s-pods
firewall-cmd --permanent --zone=k8s-pods --add-source PODS_CIDR
firewall-cmd --permanent --zone=k8s-pods --set-target=ACCEPT
firewall-cmd --reload

Reemplaza PODS_CIDR por los bloques CIDR reservados para los pods configurados en el campo clusterNetwork.pods.cidrBlocks. El bloque CIDR predeterminado para los pods es 192.168.0.0/16.

Configuración de ejemplo del nodo trabajador

En el siguiente bloque de comandos, se muestra un ejemplo de cómo puedes abrir los puertos necesarios en servidores que ejecutan nodos trabajadores:

firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=4240/tcp
firewall-cmd --permanent --zone=public --add-port=6444/tcp
firewall-cmd --permanent --zone=public --add-port=6081/udp
firewall-cmd --permanent --zone=public --add-port=10250/tcp
firewall-cmd --permanent --zone=public --add-port=10256/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
firewall-cmd --permanent --new-zone=k8s-pods
firewall-cmd --permanent --zone=k8s-pods --add-source PODS_CIDR
firewall-cmd --permanent --zone=k8s-pods --set-target=ACCEPT
firewall-cmd --reload

Reemplaza PODS_CIDR por los bloques CIDR reservados para los pods configurados en el campo clusterNetwork.pods.cidrBlocks. El bloque CIDR predeterminado para los pods es 192.168.0.0/16.

Configuración de ejemplo de nodo del balanceador de cargas

En el siguiente bloque de comandos, se muestra un ejemplo de cómo puedes abrir los puertos necesarios en servidores que ejecutan nodos del balanceador de cargas:

firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=4240/tcp
firewall-cmd --permanent --zone=public --add-port=6444/tcp
firewall-cmd --permanent --zone=public --add-port=7946/tcp
firewall-cmd --permanent --zone=public --add-port=7946/udp
firewall-cmd --permanent --zone=public --add-port=6081/udp
firewall-cmd --permanent --zone=public --add-port=10250/tcp
firewall-cmd --permanent --zone=public --add-port=10256/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
firewall-cmd --permanent --new-zone=k8s-pods
firewall-cmd --permanent --zone=k8s-pods --add-source PODS_CIDR
firewall-cmd --permanent --zone=k8s-pods --set-target=ACCEPT
firewall-cmd --reload

Reemplaza PODS_CIDR por los bloques CIDR reservados para los pods configurados en el campo clusterNetwork.pods.cidrBlocks. El bloque CIDR predeterminado para los pods es 192.168.0.0/16.

Confirma la configuración de tu puerto

Para verificar la configuración de tu puerto, sigue estos pasos en los nodos del plano de control, trabajador y balanceador de cargas:

  1. Ejecuta el siguiente comando de Network Mapper para ver qué puertos están abiertos:

    nmap localhost
    
  2. Ejecuta los siguientes comandos para obtener la configuración de firewall:

    firewall-cmd --zone=public --list-all-policies
    firewall-cmd --zone=public --list-ports
    firewall-cmd --zone=public --list-services
    firewall-cmd --zone=k8s-pods --list-all-policies
    firewall-cmd --zone=k8s-pods --list-ports
    firewall-cmd --zone=k8s-pods --list-services
    
  3. Si es necesario, vuelve a ejecutar los comandos de las secciones anteriores para configurar tus nodos de manera correcta. Es posible que deba ejecutar los comandos como usuario raíz.