Compartir a través de


Configuración de un clúster Linux de Service Fabric en la máquina del desarrollador de Windows

En este documento se describe cómo configurar un clúster local de Service Fabric para Linux en una máquina de desarrollo Windows. La configuración de un clúster Linux local es útil para probar rápidamente las aplicaciones que se destinan a clústeres Linux, pero se desarrollan en un equipo Windows.

Requisitos previos

Los clústeres de Service Fabric basados en Linux no se ejecutan en Windows, pero para habilitar la creación de prototipos multiplataforma, se proporciona un contenedor de Docker con clústeres de máquina única Linux de Service Fabric, que se puede implementar mediante Docker para Windows.

Antes de comenzar, necesita:

  • Al menos 4 GB de RAM
  • La versión más reciente de Docker para Windows
  • Docker debe ejecutarse en modo de contenedores de Linux

Sugerencia

Para instalar Docker en una máquina Windows, siga los pasos que se indican en la documentación de Docker. Después de instalar, compruebe la instalación.

Creación de un contenedor local e instalación de Service Fabric

Para configurar un contenedor de Docker local y hacer que un clúster de Service Fabric se ejecute en él, siga estos pasos:

  1. Actualice la configuración del demonio de Docker en el host con lo siguiente y reinicie dicho demonio:

    {
      "ipv6": true,
      "fixed-cidr-v6": "2001:db8:1::/64"
    }
    

    La forma recomendada de actualizarla es ir a:

    • Icono de Docker > Configuración > Motor de Docker
    • Agregar los nuevos campos enumerados anteriormente.
    • Aplicar y reiniciar: reinicie el demonio de Docker para que los cambios surtan efecto.
  2. Inicie el clúster mediante PowerShell.
    Ubuntu 20.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u20
    

    Ubuntu 18.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18
    

    Sugerencia

    De forma predeterminada, se extraerá la imagen con la versión más reciente de Service Fabric. Para ver revisiones concretas, consulte la página Service Fabric OneBox en Docker Hub.

  3. Opcional: cree una imagen de Service Fabric extendida.

    En un directorio nuevo, cree un archivo denominado Dockerfile para crear la imagen personalizada:

    Nota:

    Puede adaptar esa imagen con un Dockerfile para agregar programas o dependencias al contenedor. Por ejemplo, si se agrega RUN apt-get install nodejs -y, será posible usar aplicaciones nodejs como ejecutables de invitado.

    FROM mcr.microsoft.com/service-fabric/onebox:u18
    RUN apt-get install nodejs -y
    EXPOSE 19080 19000 80 443
    WORKDIR /home/ClusterDeployer
    CMD ["./ClusterDeployer.sh"]
    

    Sugerencia

    De forma predeterminada, se extraerá la imagen con la versión más reciente de Service Fabric. Para revisiones concretas, visite la página Docker Hub.

    Para crear una imagen reutilizable a partir de Dockerfile, abra una ventana de terminal y ejecute cd para cambiar al directorio donde se encuentra su Dockerfile y, después, ejecute:

    docker build -t mysfcluster .
    

    Nota:

    Esta operación tardará un tiempo, pero solo se necesita una vez.

    Ya se puede iniciar rápidamente una copia local de Service Fabric, siempre que se necesite. Para ello, hay que ejecutar:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mysfcluster
    

    Sugerencia

    Al especificar un nombre para la instancia del contenedor, puede tratarlo de forma más legible.

    Si la aplicación está escuchando en determinados puertos, estos deben especificarse mediante etiquetas -p adicionales. Por ejemplo, si la aplicación está escuchando en el puerto 8080, agregue la siguiente etiqueta -p:

    docker run -itd -p 19000:19000 -p 19080:19080 -p 8080:8080 --name sfonebox mcr.microsoft.com/service-fabric/onebox:u18

  4. El clúster tardará un poco de tiempo en iniciarse; puede ver los registros con el comando siguiente o pasar al panel para ver el mantenimiento de los clústeres http://localhost:19080:

    docker logs sftestcluster
    
  5. Una vez que el clúster se implementa correctamente, como se ve en el paso 4, puede ir a http://localhost:19080 desde su máquina Windows para buscar el panel de Service Fabric Explorer. En este momento, puede conectarse a este clúster mediante las herramientas de la máquina del desarrollador de Windows e implementar aplicaciones destinadas a los clústeres de Service Fabric para Linux.

    Nota:

    El complemento de Eclipse no se admite actualmente en Windows.

  6. Cuando haya acabado, detenga el contenedor y límpielo con este comando:

    docker rm -f sftestcluster
    

Limitaciones conocidas

A continuación se muestran limitaciones conocidas del clúster local que se ejecuta en un contenedor para dispositivos Mac:

  • El servicio DNS no se ejecuta y actualmente no se admite dentro del contenedor. Problema n.° 132
  • La ejecución de aplicaciones basadas en contenedores requiere la ejecutar SF en un host de Linux. Actualmente no se admiten aplicaciones de contenedor anidadas.

Pasos siguientes