Configuración de red para Azure Dev Spaces en distintas topologías de redConfigure networking for Azure Dev Spaces in different network topologies

Importante

Azure Dev Spaces se retira y dejará de funcionar el 31 de octubre de 2023.Azure Dev Spaces is being retired and will stop working on October 31, 2023. Considere la posibilidad de migrar a Bridge to Kubernetes.Consider migrating to Bridge to Kubernetes.

Azure Dev Spaces se ejecuta en clústeres de Azure Kubernetes Service (AKS) con la configuración de red predeterminada.Azure Dev Spaces runs on Azure Kubernetes Service (AKS) clusters with the default networking configuration. Si quiere cambiar la configuración de red del clúster de AKS, como poner el clúster detrás de un firewall, usar grupos de seguridad de red o directivas de red, debe incorporar consideraciones adicionales para ejecutar Azure Dev Spaces.If you want to change the networking configuration of your AKS cluster, such as putting the cluster behind a firewall, using network security groups, or using network policies, you have to incorporate additional considerations for running Azure Dev Spaces.

Configuración de redes virtuales

Configuraciones de la red virtual o subredVirtual network or subnet configurations

El clúster de AKS puede tener una configuración diferente de red virtual o subred para restringir el tráfico de entrada o salida para el clúster de AKS.Your AKS cluster may have a different virtual network or subnet configuration to restrict ingress or egress traffic for your AKS cluster. Por ejemplo, el clúster puede estar detrás de un firewall, como Azure Firewall, o puede usar grupos de seguridad de red o roles personalizados para restringir el tráfico de red.For example, your cluster may be behind a firewall, such as Azure Firewall, or you might use Network Security Groups or custom roles for restricting network traffic. Puede encontrar un ejemplo de configuración de red en el repositorio de ejemplos de Azure Dev Spaces en GitHub.You can find an example network configuration in the Azure Dev Spaces sample repository on GitHub.

Azure Dev Spaces tiene ciertos requisitos para el tráfico de red de entrada y salida, así como para el tráfico de solo entrada.Azure Dev Spaces has certain requirements for Ingress and Egress network traffic as well as Ingress only traffic. Si usa Azure Dev Spaces en un clúster de AKS con una configuración de red virtual o subred que restringe el tráfico para el clúster de AKS, debe seguir los siguientes requisitos de tráfico de entrada y salida y de solo entrada para que Azure Dev Spaces funcione correctamente.If you are using Azure Dev Spaces on an AKS cluster with a virtual network or subnet configuration that restricts traffic for your AKS cluster, you must follow the following ingress only and ingress and egress traffic requirements in order for Azure Dev Spaces to function properly.

Requisitos de tráfico de red de entrada y salidaIngress and egress network traffic requirements

Azure Dev Spaces necesita tráfico de entrada y salida para los FQDN siguientes:Azure Dev Spaces needs ingress and egress traffic for following FQDNs:

FQDNFQDN PortPort UsoUse
cloudflare.docker.comcloudflare.docker.com HTTPS: 443HTTPS: 443 Para extraer imágenes de Docker para Azure Dev SpacesTo pull docker images for Azure Dev Spaces
gcr.iogcr.io HTTPS: 443HTTPS: 443 Para extraer imágenes de Helm para Azure Dev SpacesTo pull helm images for Azure Dev Spaces
storage.googleapis.comstorage.googleapis.com HTTPS: 443HTTPS: 443 Para extraer imágenes de Helm para Azure Dev SpacesTo pull helm images for Azure Dev Spaces

Actualice el firewall o la configuración de seguridad para permitir el tráfico de red hacia y desde todos los FQDN anteriores y los servicios de infraestructura de Azure Dev Spaces.Update your firewall or security configuration to allow network traffic to and from the all of the above FQDNs and Azure Dev Spaces infrastructure services. Por ejemplo, si usa un firewall para proteger la red, se deben agregar los FQDN anteriores a la regla de aplicación del firewall, y la etiqueta de servicio de Azure Dev Spaces también se deberá agregar al firewall.For example, if you are using a firewall to secure your network, the above FQDNs should be added to the application rule of the firewall and the Azure Dev Spaces service tag must also be added to the firewall. Estas dos actualizaciones del firewall son obligatorias para permitir el tráfico hacia y desde estos dominios.Both of those updates to the firewall are required to allow traffic to and from these domains.

Requisitos de tráfico de red de solo entradaIngress only network traffic requirements

Azure Dev Spaces proporciona enrutamiento de nivel de espacio de nombres de Kubernetes y acceso público a los servicios mediante su propio FQDN.Azure Dev Spaces provides Kubernetes namespace-level routing as well as public access to services using its own FQDN. Para que ambas características funcionen, actualice el firewall o la configuración de red para permitir la entrada pública en la dirección IP externa del controlador de entrada de Azure Dev Spaces del clúster.For both of those features to work, update your firewall or network configuration to allow public ingress to the external IP address of the Azure Dev Spaces ingress controller on your cluster. También puede crear un equilibrador de carga interno y agregar una regla NAT en el firewall para traducir la dirección IP pública del firewall a la dirección IP del equilibrador de carga interno.Alternatively, you can create an internal load balancer and add a NAT rule in your firewall to translate the public IP of your firewall to the IP of your internal load balancer. También puede usar traefik o NGINX para crear un controlador de entrada personalizado.You can also use traefik or NGINX to create a custom ingress controller.

Requisitos de red del clúster de AKSAKS cluster network requirements

AKS permite usar directivas de red para controlar el tráfico de entrada y salida entre pods en un clúster, así como el tráfico de salida de un pod.AKS allows you to use network policies to control ingress and egress traffic between pods on a cluster as well as egress traffic from a pod. Azure Dev Spaces tiene ciertos requisitos para el tráfico de red de entrada y salida, así como para el tráfico de solo entrada.Azure Dev Spaces has certain requirements for Ingress and Egress network traffic as well as Ingress only traffic. Si usa Azure Dev Spaces en un clúster de AKS con directivas de red de AKS, debe seguir los siguientes requisitos de tráfico de entrada y salida y de solo entrada para que Azure Dev Spaces funcione correctamente.If you are using Azure Dev Spaces on an AKS cluster with AKS network policies, you must follow the following ingress only and ingress and egress traffic requirements in order for Azure Dev Spaces to function properly.

Requisitos de tráfico de red de entrada y salidaIngress and egress network traffic requirements

Azure Dev Spaces le permite comunicarse directamente con un pod en un espacio de desarrollo en el clúster para la depuración.Azure Dev Spaces allows you to communicate directly with a pod in a dev space on your cluster for debugging. Para que esta característica funcione, agregue una directiva de red que permita la comunicación de entrada y salida con las direcciones IP de la infraestructura de Azure Dev Spaces, que puede variar por región.For this feature to work, add a network policy that allows ingress and egress communication to the IP addresses of the Azure Dev Spaces infrastructure, which vary by region.

Requisitos de tráfico de red de solo entradaIngress only network traffic requirements

Azure Dev Spaces proporciona enrutamiento entre los pods entre espacios de nombres.Azure Dev Spaces provides routing between pods across namespaces. Por ejemplo, los espacios de nombres con Azure Dev Spaces habilitado pueden tener una relación de elementos primarios y secundarios, lo que permite enrutar el tráfico de red entre los pods entre los espacios de nombres primarios y secundarios.For example, namespaces with Azure Dev Spaces enabled can have a parent/child relationship, which allows network traffic to be routed between pods across the parent and child namespaces. También Azure Dev Spaces expone puntos de conexión de servicio mediante su propio FQDN.Azure Dev Spaces also exposes service endpoints using its own FQDN. Para configurar maneras diferentes de exponer servicios y cómo afecta al enrutamiento de nivel de espacio de nombres, consulte Usar diferentes opciones de punto de conexión.To configure different ways of exposing services and how it impacts namespace level routing see Using different endpoint options.

Uso de CNI de AzureUsing Azure CNI

De manera predeterminada, los clústeres de AKS se configuran para usar Kubenet para redes, que funciona con Azure Dev Spaces.By default, AKS clusters are configured to use kubenet for networking, which works with Azure Dev Spaces. También puede configurar el clúster de AKS para usar la interfaz de red de contenedor (CNI) de Azure.You can also configure your AKS cluster to use Azure Container Networking Interface (CNI). Para usar Azure Dev Spaces con CNI de Azure en el clúster de AKS, permita que la red virtual y los espacios de direcciones de subred tengan hasta 10 direcciones IP privadas para los pods implementados por Azure Dev Spaces.To use Azure Dev Spaces with Azure CNI on your AKS cluster, allow your virtual network and subnet address spaces up to 10 private IP addresses for pods deployed by Azure Dev Spaces. Puede encontrar más información sobre cómo permitir las direcciones IP privadas en la documentación de CNI de Azure de AKS.More details on allowing private IP addresses are available in the AKS Azure CNI documentation.

Uso de intervalos IP autorizados de servidor de APIUsing API server authorized IP ranges

Los clústeres de AKS permiten configurar medidas de seguridad adicionales que limiten la dirección IP que puede interactuar con los clústeres, por ejemplo, el uso de redes virtuales personalizadas o la protección del acceso al servidor de API mediante intervalos IP autorizados.AKS clusters allow you to configure additional security that limits which IP address can interact with your clusters, for example using custom virtual networks or securing access to the API server using authorized IP ranges. Para utilizar Azure Dev Spaces cuando se usen estas medidas de seguridad adicionales al crear el clúster, debe permitir intervalos adicionales según la región.To use Azure Dev Spaces when using this additional security while creating your cluster, you must allow additional ranges based on your region. También puede actualizar un clúster existente para permitir esos intervalos adicionales.You can also update an existing cluster to allow those additional ranges. También debe permitir que la dirección IP de cualquier máquina de desarrollo que se conecte al clúster de AKS para la depuración se conecte al servidor de API.You also need to allow the IP address of any development machines that connect to your AKS cluster for debugging to connect to your API server.

Uso de clústeres privados de AKSUsing AKS private clusters

En este momento, Azure Dev Spaces no es compatible con los clústeres privados de AKS.At this time, Azure Dev Spaces is not supported with AKS private clusters.

Usar diferentes opciones de punto de conexiónUsing different endpoint options

Azure Dev Spaces tiene la opción de exponer los puntos de conexión de los servicios que se ejecutan en AKS.Azure Dev Spaces has the option to expose endpoints for your services running on AKS. Al habilitar Azure Dev Spaces en el clúster, tiene las siguientes opciones para configurar el tipo de punto de conexión para el clúster:When enabling Azure Dev Spaces on your cluster, you have the following options for configuring the endpoint type for your cluster:

  • Un punto de conexión público, que es el valor predeterminado, implementa un controlador de entrada con una dirección IP pública.A public endpoint, which is the default, deploys an ingress controller with a public IP address. La dirección IP pública se registra en el DNS del clúster, lo que permite el acceso público a los servicios mediante una dirección URL.The public IP address is registered on the cluster's DNS, allowing public access to your services using a URL. Puede ver esta dirección URL mediante azds list-uris.You can view this URL using azds list-uris.
  • Un punto de conexión privado implementa un controlador de entrada con una dirección IP privada.A private endpoint deploys an ingress controller with a private IP address. Con una dirección IP privada, el equilibrador de carga del clúster solo es accesible desde dentro de la red virtual del clúster.With a private IP address, the load balancer for your cluster is only accessible from inside the virtual network of the cluster. La dirección IP privada del equilibrador de carga se registra en el DNS del clúster para que se pueda tener acceso a los servicios dentro de la red virtual del clúster mediante una dirección URL.The private IP address of the load balancer is registered on cluster's DNS so that services inside the cluster's virtual network can be accessed using a URL. Puede ver esta dirección URL mediante azds list-uris.You can view this URL using azds list-uris.
  • Si se establece ninguno para la opción de punto de conexión, no se implementará ningún controlador de entrada.Setting none for the endpoint option causes no ingress controller to be deployed. Sin el controlador de entrada implementado, las funciones de enrutamiento de Azure Dev Spaces no funcionarán.With no ingress controller deployed, the Azure Dev Spaces routing capabilities will not work. Opcionalmente, puede implementar su propia solución de controlador de entrada mediante traefik o NGINX, lo que permitirá que las funciones de enrutamiento vuelvan a funcionar.Optionally, you can implement your own ingress controller solution using traefik or NGINX, which will allow the routing capabilities to work again.

Para configurar la opción de punto de conexión, use -e o --punto de conexión al habilitar Azure Dev Spaces en el clúster.To configure your endpoint option, use -e or --endpoint when enabling Azure Dev Spaces on your cluster. Por ejemplo:For example:

Nota

La opción de punto de conexión requiere que se ejecute CLI de Azure versión 2.2.0 o posterior.The endpoint option requires that you are running Azure CLI version 2.2.0 or later. Ejecute az --version para encontrar la versión.Run az --version to find the version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.If you need to install or upgrade, see Install Azure CLI.

az aks use-dev-spaces -g MyResourceGroup -n MyAKS -e private

Requisitos del clienteClient requirements

Azure Dev Spaces usa herramientas del lado cliente, como la extensión de la CLI de Azure Dev Spaces, la extensión de Visual Studio Code y la extensión de Visual Studio, para comunicarse con el clúster de AKS para la depuración.Azure Dev Spaces uses client-side tooling, such as the Azure Dev Spaces CLI extension, Visual Studio Code extension, and Visual Studio extension, to communicate with your AKS cluster for debugging. Para usar las herramientas del lado cliente de Azure Dev Spaces, permita el tráfico desde las máquinas de desarrollo a la infraestructura de Azure Dev Spaces.To use the Azure Dev Spaces client-side tooling, allow traffic from the development machines to the Azure Dev Spaces infrastructure. Si usa intervalo IP autorizados del servidor de API, también debe permitir que la dirección IP de cualquier máquina de desarrollo que se conecte al clúster de AKS para la depuración se conecte al servidor de API.If using API server authorized IP ranges, you also need to allow the IP address of any development machines that connect to your AKS cluster for debugging to connect to your API server.

Pasos siguientesNext steps

Más información sobre cómo funciona Azure Dev Spaces.Learn more about how Azure Dev Spaces works.