En esta página, se describen las funciones de redes de Google Distributed Cloud conectado, incluidas las subredes, las sesiones de intercambio de tráfico de BGP y el balanceo de cargas.
Los procedimientos de esta página solo se aplican a los racks de Distributed Cloud conectado, excepto el balanceo de cargas, que se aplica tanto a los racks de Distributed Cloud conectado como a los servidores de Distributed Cloud conectado.
Habilita la API de Distributed Cloud Edge Network
Antes de que puedas configurar las redes en una implementación conectada de Distributed Cloud, debes habilitar la API de Distributed Cloud Edge Network. Para ello, completa los pasos de esta sección. De forma predeterminada, los servidores de Distributed Cloud conectado se envían con la API de Distributed Cloud Edge Network ya habilitada.
Console
En la Google Cloud consola, ve a la página de la API de Distributed Cloud Edge Network.
Haz clic en Habilitar.
gcloud
Usa el siguiente comando:
gcloud services enable edgenetwork.googleapis.com
Configura las redes en Distributed Cloud conectado
En esta sección, se describe cómo configurar los componentes de redes en tu implementación de Distributed Cloud conectado.
Las siguientes limitaciones se aplican a los servidores de Distributed Cloud conectado:
- Solo puedes configurar subredes.
- Las subredes solo admiten IDs de VLAN; no se admiten las subredes basadas en CIDR.
Una configuración de red típica para Distributed Cloud conectado consta de los siguientes pasos:
Opcional: Inicializa la configuración de red de la zona de destino, si es necesario.
Crea una red.
Crea una o más subredes dentro de la red.
Establece sesiones de intercambio de tráfico de BGP en dirección norte con tus routers PE mediante los adjuntos de interconexión correspondientes.
Establece sesiones de intercambio de tráfico de BGP en dirección sur con los Pods que ejecutan tus cargas de trabajo mediante las subredes correspondientes.
Opcional: Establece sesiones de intercambio de tráfico de BGP de bucle invertido para lograr una alta disponibilidad.
Prueba la configuración.
Conecta tus Pods a la red.
Opcional: Inicializa la configuración de red de la zona de Distributed Cloud
Debes inicializar la configuración de red de tu zona de Distributed Cloud conectado en los siguientes casos:
- Inmediatamente después de que se haya instalado el hardware de Distributed Cloud conectado en tus instalaciones.
- Actualizaste a Distributed Cloud conectado versión 1.3.0 o posterior en una implementación existente de Distributed Cloud conectado, pero no participaste en la versión preliminar privada de la API de Distributed Cloud Edge Network.
La inicialización de la configuración de red de una zona crea un router predeterminado llamado default y una red predeterminada llamada default. También configura el router default para que se conecte con todas las interconexiones que solicitaste cuando pediste el hardware de Distributed Cloud conectado mediante la creación de adjuntos de interconexión correspondientes. Esta configuración proporciona a tu implementación de Distributed Cloud conectado conectividad de vínculo superior básica a tu red local.
La inicialización de la configuración de red de una zona es un procedimiento único. Para obtener instrucciones completas, consulta Inicializa la configuración de red de una zona.
Crea una red
Para crear una red nueva, sigue las instrucciones que se indican en Crea una red. También debes crear al menos una subred dentro de la red para permitir que los nodos de Distributed Cloud conectado se conecten a la red.
Crea una o más subredes
Para crear una subred, sigue las instrucciones que se indican en Crea una subred. Debes crear al menos una subred en tu red para permitir que los nodos accedan a la red. La VLAN correspondiente a cada subred que crees está disponible automáticamente para todos los nodos de la zona.
En el caso de los servidores de Distributed Cloud conectado, solo puedes configurar subredes con IDs de VLAN. No se admiten las subredes basadas en CIDR.
Establece sesiones de intercambio de tráfico de BGP en dirección norte
Cuando creas una red y sus subredes correspondientes, estas son locales para su zona de Distributed Cloud conectado. Para habilitar la conectividad saliente, debes establecer al menos una sesión de intercambio de tráfico de BGP en dirección norte entre la red y tus routers perimetrales de intercambio de tráfico.
Para establecer una sesión de intercambio de tráfico de BGP en dirección norte, haz lo siguiente:
Haz una lista de las interconexiones disponibles en tu zona y, luego, selecciona la interconexión de destino para esta sesión de intercambio de tráfico.
Crea uno o más adjuntos de interconexión en la interconexión seleccionada. Los adjuntos de interconexión vinculan el router que creas en el siguiente paso con la interconexión seleccionada.
Crea un router. Este router enruta el tráfico entre la interconexión y tu red mediante los adjuntos de interconexión que creaste en el paso anterior.
Agrega una interfaz al router para cada adjunto de interconexión que creaste anteriormente en este procedimiento. Para cada interfaz, usa la dirección IP del switch de la parte superior del rack (ToR) correspondiente en tu rack de Distributed Cloud conectado. Para obtener instrucciones, consulta Establece una sesión de intercambio de tráfico en dirección norte.
Agrega un par para cada interfaz que creaste en el router en el paso anterior.
Establece sesiones de intercambio de tráfico de BGP en dirección sur
Para habilitar la conectividad entrante a tus cargas de trabajo desde tu red local, debes establecer una o más sesiones de intercambio de tráfico de BGP en dirección sur entre tus routers perimetrales de intercambio de tráfico y la subred a la que pertenecen tus Pods. La dirección IP de la puerta de enlace para cada subred es la dirección IP del switch ToR correspondiente en tu rack de Distributed Cloud conectado.
Para establecer una sesión de intercambio de tráfico de BGP en dirección sur, haz lo siguiente:
Agrega una interfaz al router en la red de destino para cada subred que deseas aprovisionar con conectividad entrante. Para obtener instrucciones, consulta Establece una sesión de intercambio de tráfico en dirección sur.
Agrega un par para cada interfaz que creaste en el router en el paso anterior.
Opcional: Establece sesiones de intercambio de tráfico de BGP de bucle invertido
Para habilitar la conectividad de alta disponibilidad entre tus cargas de trabajo y tu red local, puedes establecer una sesión de intercambio de tráfico de BGP de bucle invertido entre el Pod de destino y ambos switches ToR en tu rack de Distributed Cloud conectado. Una sesión de intercambio de tráfico de bucle invertido establece dos sesiones de intercambio de tráfico independientes para el Pod, una con cada switch ToR.
Para establecer una sesión de intercambio de tráfico de BGP de bucle invertido, haz lo siguiente:
Agrega una interfaz de bucle invertido al router en la red de destino. Para obtener instrucciones, consulta Establece una sesión de intercambio de tráfico de bucle invertido.
Agrega un par para la interfaz de bucle invertido.
Prueba la configuración
Para probar la configuración de los componentes de red que creaste, haz lo siguiente:
Conecta tus Pods a la red
Para conectar tus Pods a la red y configurar funciones de red avanzadas, sigue las instrucciones que se indican en Operador de funciones de red.
Balanceo de cargas
Distributed Cloud se envía con una solución de balanceo de cargas de red agrupada basada en MetalLB en modo de capa 2. Puedes usar esta solución para exponer servicios que se ejecutan en tu zona de Distributed Cloud al mundo exterior mediante el uso de direcciones IP virtuales (VIP) de la siguiente manera:
- El administrador de red planifica la topología de red y especifica la subred de direcciones IPv4 virtuales requerida cuando solicita Distributed Cloud. Google configura el hardware de Distributed Cloud en consecuencia antes de la entrega.
Ten en cuenta lo siguiente:
- Esta subred de VIP se comparte entre todos los clústeres de Kubernetes que se ejecutan dentro de tu zona de Distributed Cloud.
- Se anuncia una ruta para la subred de VIP solicitada a través de las sesiones de BGP entre la zona de Distributed Cloud y tu red local.
- Las direcciones primera (ID de red), segunda (puerta de enlace predeterminada) y última (dirección de transmisión ) de la subred están reservadas para la funcionalidad principal del sistema. No asignes esas direcciones a los grupos de direcciones de tus configuraciones de MetalLB.
- Cada clúster debe usar un rango de VIP independiente que se encuentre dentro de la subred de VIP configurada.
- Cuando creas un clúster en tu zona de Distributed Cloud, el administrador del clúster especifica los grupos de direcciones de Pod y ClusterIP Service con la notación CIDR. El administrador de red proporciona la subred de VIP
LoadBalanceradecuada al administrador del clúster. Después de crear el clúster, el administrador del clúster configura los grupos de VIP correspondientes. En el caso de los clústeres del plano de control remoto, debes editar el ConfigMap
metallb-configen el espacio de nombresmetallb-systemcon el comandokubectl editokubectl replace. No uses el comandokubectl apply, ya que Distributed Cloud anula tus cambios si lo haces.En el siguiente ejemplo, se ilustra una configuración de este tipo:
# metallb-config.yaml apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: metallb-config data: config: | address-pools: - name: default protocol: layer2 addresses: - 192.168.1.2-192.168.1.254En el caso de los clústeres del plano de control local, debes especificar los grupos de VIP con la marca
--external-lb-ipv4-address-poolscuando crees el clúster. Para obtener más información, consulta Modo de capacidad de supervivencia.El administrador del clúster crea los servicios
LoadBalancerde Kubernetes adecuados.
Los nodos de Distributed Cloud en un solo grupo de nodos comparten un dominio de capa 2 común y, por lo tanto, también son nodos de balanceador de cargas de MetalLB. Los nodos del plano de control de Distributed Cloud que se ejecutan en Google Cloud no funcionan como nodos de balanceador de cargas.
Ingreso de Distributed Cloud
Además del balanceo de cargas, Distributed Cloud conectado también admite recursos Ingress de Kubernetes. Un recurso Ingress de Kubernetes controla el flujo de tráfico HTTP(S) a los servicios de Kubernetes que se ejecutan en tus clústeres de Distributed Cloud conectado. En el siguiente ejemplo, se ilustra un recurso Ingress típico:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- backend:
service:
name: my-service
port:
number: 80
path: /foo
pathType: Prefix
Cuando se configura, el tráfico de red fluye a través del servicio istio-ingress, al que, de forma predeterminada, se le asigna una dirección IP aleatoria de los grupos de VIP especificados en tu configuración de MetalLB. Puedes seleccionar una dirección IP específica o una dirección IP virtual de la configuración de MetalLB con el campo loadBalancerIP en la definición del servicio istio-ingress. Por ejemplo:
apiVersion: v1
kind: Service
metadata:
labels:
istio: ingress-gke-system
release: istio
name: istio-ingress
namespace: gke-system
spec:
loadBalancerIP: <targetLoadBalancerIPaddress>
Esta función no está disponible en los servidores de Distributed Cloud conectado.
Inhabilita el recurso Ingress predeterminado de Distributed Cloud
De forma predeterminada, cuando creas un clúster de Distributed Cloud conectado, Distributed Cloud configura automáticamente el servicio istio-ingress para el clúster. Tienes la opción de crear un clúster de Distributed Cloud conectado sin el servicio istio-ingress. Para ello, completa los siguientes pasos:
gcloud
Crea un archivo de configuración YAML llamado
SystemsAddonConfig.yamlcon el siguiente contenido:systemAddonsConfig: ingress: disabled: true
Pasa el archivo
SystemsAddonConfig.yamlcon la marca--system-addons-configen el comando de creación del clúster. Debes usar la versióngcloud alphapara usar esta función. Por ejemplo:gcloud alpha edge-cloud container clusters create MyGDCECluster1 --location us-west1 \ --system-addons-config=SystemsAddonConfig.yamlPara obtener más información sobre cómo crear un clúster de Distributed Cloud, consulta Crea un clúster.
API
Agrega el siguiente contenido JSON a la carga útil de JSON en tu solicitud de creación de clústeres:
"systemAddonConfig" { "ingress" { "disabled": true } }Envía la solicitud de creación de clústeres como se describe en Crea un clúster.
Compatibilidad con SCTP
Distributed Cloud conectado admite el Protocolo de control de transmisión de flujo (SCTP) en la interfaz de red principal para redes internas y externas. La compatibilidad con SCTP incluye los tipos de servicio NodePort, LoadBalancer y ClusterIP. Los Pods pueden usar SCTP para comunicarse con otros Pods y recursos externos. En el siguiente ejemplo, se ilustra cómo configurar IPERF como un servicio ClusterIP con SCTP:
apiVersion: v1
kind: Pod
metadata:
name: iperf3-sctp-server-client
labels:
app.kubernetes.io/name: iperf3-sctp-server-client
spec:
containers:
- name: iperf3-sctp-server
args: ['-s', '-p 31390']
ports:
- containerPort: 31390
protocol: SCTP
name: server-sctp
- name: iperf3-sctp-client
...
---
apiVersion: v1
kind: Service
metadata:
name: iperf3-sctp-svc
spec:
selector:
app.kubernetes.io/name: iperf3-sctp-server-client
ports:
- port: 31390
protocol: SCTP
targetPort: server-sctp
Esta función no está disponible en los servidores de Distributed Cloud conectado.
Módulos de kernel de SCTP
A partir de la versión 1.5.0, Distributed Cloud conectado configura el módulo de kernel del SO Edge sctp como cargable. Esto te permite cargar tus propias pilas de protocolos SCTP en el espacio de usuario del kernel.
Además, Distributed Cloud conectado carga los siguientes módulos en el kernel de forma predeterminada:
| Nombre del módulo | Nombre de la configuración |
|---|---|
fou |
CONFIG_NET_FOU |
nf_conntrack_proto_gre |
CONFIG_NF_CT_PROTO_GRE |
nf_conntrack_proto_sctp |
CONFIG_NF_CT_PROTO_SCTP |
inotify |
CONFIG_INOTIFY_USER |
xt_redirect |
CONFIG_NETFILTER_XT_TARGET_REDIRECT |
xt_u32 |
CONFIG_NETFILTER_XT_MATCH_U32 |
xt_multiport |
CONFIG_NETFILTER_XT_MATCH_MULTIPORT |
xt_statistic |
CONFIG_NETFILTER_XT_MATCH_STATISTIC |
xt_owner |
CONFIG_NETFILTER_XT_MATCH_OWNER |
xt_conntrack |
CONFIG_NETFILTER_XT_MATCH_CONNTRACK |
xt_mark |
CONFIG_NETFILTER_XT_MARK |
ip6table_mangle |
CONFIG_IP6_NF_MANGLE |
ip6_tables |
CONFIG_IP6_NF_IPTABLES |
ip6table_filter |
CONFIG_IP6_NF_FILTER |
ip6t_reject |
CONFIG_IP6_NF_TARGET_REJECT |
iptable_mangle |
CONFIG_IP_NF_MANGLE |
ip_tables |
CONFIG_IP_NF_IPTABLES |
iptable_filter |
CONFIG_IP_NF_FILTER |
Recurso ClusterDNS
Distributed Cloud conectado admite el recurso ClusterDNS de Google Distributed Cloud para configurar servidores de nombres ascendentes para dominios específicos con la sección spec.domains. Para obtener más información sobre la configuración de este
recurso, consulta
spec.domains.
Esta función no está disponible en los servidores de Distributed Cloud conectado.