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:
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.
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.
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 aplicacionesnodejs
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 ejecutecd
para cambiar al directorio donde se encuentra suDockerfile
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
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
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.
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
- Configuración de un clúster de Linux en Windows mediante WSL2
- Creación e implementación de la primera aplicación de Java para Service Fabric en Linux con Yeoman
- Introducción a Eclipse
- Consulte otros ejemplos de Java.
- Más información sobre las opciones de soporte técnico de Service Fabric