Partekatu honen bidez:


Redes

Al crear y administrar clústeres de Azure Service Fabric, proporcionará conectividad de red para los nodos y aplicaciones. Los recursos de red incluyen intervalos de direcciones IP, redes virtuales, equilibradores de carga y grupos de seguridad de red. En este artículo, conocerá los procedimientos recomendados para estos recursos.

Revise los patrones de redes de Service Fabric de Azure para aprender a crear clústeres que usen las siguientes características: red virtual o subred existentes, dirección IP pública estática, equilibrador de carga solo interno y equilibrador de carga solo externo.

Redes de infraestructura

Maximice el rendimiento de la máquina virtual con redes aceleradas; para ello, declare la propiedad enableAcceleratedNetworking en la plantilla de Resource Manager. El siguiente fragmento de código corresponde al elemento NetworkInterfaceConfigurations de un conjunto de escalado de máquinas virtuales que habilita las redes aceleradas:

"networkInterfaceConfigurations": [
  {
    "name": "[concat(variables('nicName'), '-0')]",
    "properties": {
      "enableAcceleratedNetworking": true,
      "ipConfigurations": [
        {
        <snip>
        }
      ],
      "primary": true
    }
  }
]

El clúster de Service Fabric se puede aprovisionar en Linux con redes aceleradas y Windows con redes aceleradas.

Las redes aceleradas se admiten para las SKU de la serie de máquina virtual de Azure: D/DSv2, D/DSv3, E/ESv3, F/FS, FSv2 y Ms/Mms. Las redes aceleradas se probaron correctamente con la SKU Standard_DS8_v3 el 23 de enero de 2019 en un clúster de Windows de Service Fabric y con Standard_DS12_v2 el 29 de enero de 2019 en un clúster de Linux de Service Fabric. Tenga en cuenta que las redes aceleradas requieren al menos cuatro vCPU.

Para habilitar las redes aceleradas en un clúster de Service Fabric existente, primero debe escalar un clúster de Service Fabric horizontalmente mediante la incorporación de un conjunto de escalado de máquinas virtuales, para realizar los siguientes pasos:

  1. Aprovisionar un elemento NodeType con las redes aceleradas habilitadas
  2. Migrar los servicios y su estado al elemento NodeType aprovisionado con las redes aceleradas habilitadas

Para habilitar las redes aceleradas en un clúster existente, es necesario escalar horizontalmente la infraestructura dado que si se habilitan tal y como está, se produciría tiempo de inactividad puesto que todas las máquinas virtuales de un conjunto de disponibilidad se tendrían que detener y desasignar antes de habilitarlas en una NIC existente.

Redes de clúster

  • Los clústeres de Service Fabric se pueden implementar en una red virtual existente mediante los pasos descritos en Patrones de redes de Service Fabric.

  • Se recomiendan grupos de seguridad de red (NSG) para que los tipos de nodo restrinjan el tráfico entrante y saliente en su clúster. Asegúrese de que los puertos necesarios estén abiertos en el NSG.

  • El tipo de nodo principal, que contiene los servicios del sistema de Service Fabric, no debe exponerse a través del equilibrador de carga externo y puede exponerse mediante un equilibrador de carga interno

  • Use una dirección IP pública estática para el clúster.

Reglas de seguridad de red

Las reglas que se describen a continuación son el mínimo recomendado en una configuración típica. También se incluyen las reglas obligatorias para un clúster operativo, en caso de que no se deseen reglas opcionales. Estas reglas permiten un bloqueo de seguridad completo con conceptos de emparejamiento de red y JumpBox, como Azure Bastion. Si no se abren los puertos obligatorios o no se aprueba la dirección IP o URL, el clúster no funcionará correctamente y es posible que no se admita.

Entrante

Priority Nombre Puerto Protocolo Origen Destino Acción Mandatory
3900 Portal de Azure 19080 TCP ServiceFabric Any Allow
3910 API de cliente 19000 TCP Internet Any Allow No
3920 SFX + API de cliente 19080 TCP Internet Any Allow No
3930 Clúster 1025-1027 TCP VirtualNetwork Any Allow
3940 Efímero 49152-65534 TCP VirtualNetwork Any Allow
3950 Application 20000-30000 TCP VirtualNetwork Any Allow
3960 RDP 3389 TCP Internet Any Denegar No
3970 SSH 22 TCP Internet Any Denegar No
3980 Punto de conexión personalizado 443 TCP Internet Any Denegar No

Más información sobre las reglas de seguridad de entrada:

  • Azure Portal. Este puerto lo emplea el proveedor de recursos de Service Fabric para consultar información sobre el clúster y que se muestre en el Portal de administración de Microsoft Azure. Si este puerto no es accesible desde el proveedor de recursos de Service Fabric, se ve un mensaje como "Nodos no encontrados" o "UpgradeServiceNotReachable" en Azure Portal y el nodo y la lista de aplicaciones aparecen vacíos. Esto significa que si quiere tener visibilidad del clúster en el Portal de administración de Azure, el equilibrador de carga debe exponer una dirección IP pública y el NSG debe permitir el tráfico entrante de 19080. Este puerto se recomienda para las operaciones de administración extendida que se realicen desde el proveedor de recursos de Service Fabric para garantizar una mayor confiabilidad.

  • API de cliente. Punto de conexión de cliente para las API que usa PowerShell.

  • SFX + API de cliente. Este puerto lo usa Service Fabric Explorer para examinar y administrar un clúster. Del mismo modo lo usan las API más comunes como REST/PowerShell (Microsoft.ServiceFabric.PowerShell.Http)/CLI/.NET.

  • Clúster. Se usa para la comunicación entre nodos.

  • Efímero. Service Fabric usará una parte de estos puertos como puertos de aplicación, y el resto estará disponible para el sistema operativo. También asigna este rango al rango existente en el sistema operativo, por lo que puede usar los rangos de este ejemplo para todos los fines. Asegúrese de que la diferencia entre los puertos de inicio y finalización es al menos de 255. Puede encontrarse con conflictos si esta diferencia es demasiado baja, ya que este intervalo se comparte con el sistema operativo. Para ver el rango de puertos dinámicos configurado, ejecute netsh int ipv4 show dynamic port tcp. Estos puertos no son necesarios para clústeres de Linux.

  • Aplicación. El intervalo de puertos de las aplicaciones debería ser lo suficientemente amplio como para contemplar el requisito de punto de conexión de estas. Este intervalo debería quedar excluido del intervalo de puertos dinámicos de la máquina, es decir, el intervalo ephemeralPorts tal y como se establece en la configuración. Service Fabric usa estos puertos siempre que se requieren nuevos puertos y se ocupa de la apertura del firewall para ellos en los nodos.

  • RDP. Opcional, si se requiere RDP desde Internet o VirtualNetwork para escenarios de jumpbox.

  • SSH. Opcional, si se requiere SSH desde Internet o VirtualNetwork para escenarios de jumpbox.

  • Punto de conexión personalizado. Ejemplo para que la aplicación habilite un punto de conexión accesible de Internet.

Nota:

Para la mayoría de las reglas que tengan Internet como origen, considere la posibilidad de establecer una restricción a su red conocida, que lo ideal sería que la definiera un bloque CIDR.

Saliente

Priority Nombre Puerto Protocolo Origen Destino Acción Mandatory
4010 Proveedor de recursos 443 TCP Any ServiceFabric Allow
4020 Descargar archivos binarios 443 TCP Any AzureFrontDoor.FirstParty Allow

Más información sobre las reglas de seguridad de salida:

  • Proveedor de recursos. Conexión entre UpgradeService y un proveedor de recursos de Service Fabric para recibir operaciones de administración como implementaciones de ARM u operaciones obligatorias, como la selección de nodo de inicialización o la actualización del tipo de nodo principal.

  • Descargar archivos binarios. El servicio de actualización usa la dirección download.microsoft.com para obtener los archivos binarios, esta relación es necesaria para la instalación, para volver a crear imágenes y para las actualizaciones del entorno de ejecución. En el escenario de un equilibrador de carga "solo interno", debe agregarse un equilibrador de carga externo adicional con una regla que permita el tráfico de salida del puerto 443. Opcionalmente, este puerto se puede bloquear después de una instalación correcta, pero en este caso el paquete de actualización debe distribuirse a los nodos o el puerto tiene que estar abierto durante ese breve período de tiempo; después es necesaria una actualización manual.

Use Azure Firewall con registro de flujo de grupos de seguridad de red y análisis de tráfico para realizar un seguimiento de los problemas de conectividad. La plantilla de ARM Service Fabric con NSG es un buen ejemplo para empezar.

Nota:

Las reglas de seguridad de red predeterminadas no deben sobrescribirse, ya que garantizan la comunicación entre los nodos. Grupo de seguridad de red: funcionamiento. Otro ejemplo, la conectividad saliente en el puerto 80 es necesaria para realizar la comprobación de la lista de revocación de certificados.

Escenarios comunes que necesitan reglas adicionales

Todos los escenarios adicionales se pueden cubrir con etiquetas de servicio de Azure.

Azure DevOps

Las tareas clásicas de PowerShell en Azure DevOps (etiqueta de servicio: AzureCloud) necesitan acceso de la API de cliente al clúster, por ejemplo, implementaciones de aplicaciones o tareas operativas. Esto no se aplica únicamente al enfoque de plantillas de ARM, incluidos los recursos de aplicaciones de ARM.

Priority Nombre Puerto Protocolo Origen Destino Acción Dirección
3915 Azure DevOps 19000 TCP AzureCloud Any Allow Entrada

Actualización de Windows

El procedimiento recomendado para aplicar revisiones al sistema operativo Windows está reemplazando al disco del sistema operativo por actualizaciones automáticas de imágenes del sistema operativo; no se requiere ninguna regla adicional. La aplicación de orquestación de revisiones administra las actualizaciones en la máquina virtual en las que Windows Updates aplica revisiones del sistema operativo; para ello, se necesita acceso al Centro de descarga (etiqueta de servicio: AzureUpdateDelivery) para descargar los archivos binarios de actualización.

Priority Nombre Puerto Protocolo Origen Destino Acción Dirección
4015 Actualizaciones de Windows 443 TCP Any AzureUpdateDelivery Allow Salida

API Management

La integración de Azure API Management (etiqueta de servicio: ApiManagement) necesita acceso a la API de cliente para consultar la información del punto de conexión desde el clúster.

Priority Nombre Puerto Protocolo Origen Destino Acción Dirección
3920 API Management 19080 TCP ApiManagement Any Allow Entrada

Redes de aplicación

  • Para ejecutar cargas de trabajo de contenedor de Windows, use el modo de red abierto para facilitar la comunicación de servicio a servicio.

  • Use un proxy inverso, como Traefik o el proxy inverso de Service Fabric para exponer los puertos de aplicación comunes, como 80 o 443.

  • En el caso de los contenedores de Windows hospedados en máquinas que no tienen una conexión física que no pueden extraer los niveles de base del almacenamiento en la nube de Azure, anule el comportamiento del nivel externo con el uso de la marca --allow-nondistributable-artifacts en el demonio de Docker.

Pasos siguientes