Inicio rápido: Implementar contenedores Linux en Service FabricQuickstart: Deploy Linux containers to Service Fabric

Azure Service Fabric es una plataforma de sistemas distribuidos para implementar y administrar microservicios y contenedores escalables y confiables.Azure Service Fabric is a distributed systems platform for deploying and managing scalable and reliable microservices and containers.

Este inicio rápido muestra cómo implementar contenedores Linux en un clúster de Service Fabric en Azure.This quickstart shows how to deploy Linux containers to a Service Fabric cluster on Azure. Una vez completado, tendrá una aplicación de votación que consta de un front-end web de Python y un back-end de Redis en ejecución en un clúster de Service Fabric.Once complete, you have a voting application consisting of a Python web front end and a Redis back end running in a Service Fabric cluster. También aprenderá cómo conmutar por error una aplicación y cómo escalar una aplicación en el clúster.You also learn how to fail over an application and how to scale an application in your cluster.

Página web de la aplicación de votación

Requisitos previosPrerequisites

Para completar esta guía de inicio rápido:To complete this quickstart:

  1. Cree una cuenta gratuita de Azure antes de empezar, si no tiene una suscripción a Azure.Create a free Azure account before you begin if you don't have a subscription.

  2. Instale la CLI de Azure.Install the Azure CLI

  3. Instale el SDK de Service Fabric y la CLI.Install the Service Fabric SDK and CLI

  4. Instalación de GitInstall Git

Obtención del paquete de la aplicaciónGet the application package

Para implementar contenedores en Service Fabric, necesita un conjunto de archivos de manifiesto (la definición de la aplicación), que describen los contenedores individuales y la aplicación.To deploy containers to Service Fabric, you need a set of manifest files (the application definition), which describe the individual containers and the application.

En una consola, utilice git para clonar una copia de la definición de aplicación; a continuación, cambie los directorios al directorio Voting en el clon.In a console, use git to clone a copy of the application definition; then change directories to the Voting directory in your clone.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

Creación de un clúster de Service FabricCreate a Service Fabric cluster

Para implementar la aplicación en Azure, se necesita un clúster de Service Fabric que ejecute la aplicación.To deploy the application to Azure, you need a Service Fabric cluster to run the application. Los siguientes comandos crean un clúster de cinco nodos en Azure.The following commands create a five-node cluster in Azure. Los comandos también crean un certificado autofirmado, lo agregan a un almacén de claves y los descargan en el sitio local.The commands also create a self-signed certificate, adds it to a key vault and downloads the certificate locally. El nuevo certificado se usa para proteger el clúster al implementarlo y también para autenticar a los clientes.The new certificate is used to secure the cluster when it deploys and is used to authenticate clients.

#!/bin/bash

# Variables
ResourceGroupName='containertestcluster' 
ClusterName='containertestcluster' 
Location='eastus' 
Password='q6D7nN%6ck@6' 
Subject='containertestcluster.eastus.cloudapp.azure.com' 
VaultName='containertestvault' 
VmPassword='Mypa$$word!321'
VmUserName='sfadminuser'

# Login to Azure and set the subscription
az login

az account set --subscription <mySubscriptionID>

# Create resource group
az group create --name $ResourceGroupName --location $Location 

# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certficate in the key vault. The certificate's subject name must match 
# the domain that you use to access the Service Fabric cluster.  The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1604 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName

Nota

El servicio front-end web está configurado para escuchar en el puerto 80 el tráfico entrante.The web front end service is configured to listen on port 80 for incoming traffic. De forma predeterminada, el puerto 80 está abierto en las máquinas virtuales del el clúster y en el equilibrador de carga de Azure.By default, port 80 is open on your cluster VMs and the Azure load balancer.

Configurar su entornoConfigure your environment

Service Fabric proporciona varias herramientas que puede usar para administrar un clúster y sus aplicaciones:Service Fabric provides several tools that you can use to manage a cluster and its applications:

  • Service Fabric Explorer, una herramienta basada en explorador.Service Fabric Explorer, a browser-based tool.
  • Interfaz de la línea de comandos (CLI) de Service Fabric, que se ejecuta sobre la CLI de Azure.Service Fabric Command Line Interface (CLI), which runs on top of Azure CLI.
  • Comandos de PowerShell.PowerShell commands.

En este inicio rápido, se usan la CLI de Service Fabric y Service Fabric Explorer (una herramienta basada en web).In this quickstart, you use the Service Fabric CLI and Service Fabric Explorer (a web based tool). Para usar Service Fabric Explorer, deberá importar el archivo PFX del certificado en el explorador.To use Service Fabric Explorer, you need to import the certificate PFX file into the browser. De forma predeterminada, el archivo PFX no tiene contraseña.By default, the PFX file has no password.

Mozilla Firefox es el explorador predeterminado en Ubuntu 16.04.Mozilla Firefox is the default browser in Ubuntu 16.04. Para importar el certificado en Firefox, haga clic en el botón de menú en la esquina superior derecha del explorador y, a continuación, haga clic en Opciones.To import the certificate into Firefox, click the menu button in the upper right corner of your browser, then click Options. En la página Preferencias, utilice el cuadro de búsqueda para buscar "certificados".On the Preferences page, use the search box to search for "certificates". Haga clic en Ver certificados, seleccione la pestaña Sus certificados, haga clic en Importar y siga las indicaciones para importar el certificado.Click View Certificates, select the Your Certificates tab, click Import and follow the prompts to import the certificate.

Instalación del certificado en Firefox

Implementación de la aplicación de Service FabricDeploy the Service Fabric application

  1. Conéctese al clúster de Service Fabric en Azure mediante la CLI.Connect to the Service Fabric cluster in Azure using the CLI. El punto de conexión es el punto de conexión de administración del clúster.The endpoint is the management endpoint for your cluster. Ha creado el archivo PEM en la sección anterior.You created the PEM file in the previous section.

    sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
    
  2. Use el script de instalación para copiar la definición de la aplicación de votación en el clúster, registrar el tipo de aplicación y crear una instancia de la aplicación.Use the install script to copy the Voting application definition to the cluster, register the application type, and create an instance of the application. El archivo de certificado PEM debe encontrarse en el mismo directorio que el archivo install.sh.The PEM certificate file should be located in the same directory as the install.sh file.

    ./install.sh
    
  3. Abra un explorador web y navegue hasta el punto de conexión de Service Fabric Explorer del clúster.Open a web browser and navigate to the Service Fabric Explorer endpoint for your cluster. El punto de conexión tiene el siguiente formato: https://<my-azure-service-fabric-cluster-url>: 19080/Explorer; por ejemplo, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.The endpoint has the following format: https://<my-azure-service-fabric-cluster-url>:19080/Explorer; for example, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  4. Expanda el nodo Aplicaciones para comprobar que ahora hay una entrada para el tipo de aplicación de votación y la instancia que ha creado.Expand the Applications node to see that there is now an entry for the Voting application type and the instance you created.

    Service Fabric Explorer

  5. Para conectar con el contenedor en ejecución, abra un explorador web y navegue a la dirección URL del clúster; por ejemplo, http://containertestcluster.eastus.cloudapp.azure.com:80.To connect to the running container, open a web browser and navigate to the URL of your cluster; for example, http://containertestcluster.eastus.cloudapp.azure.com:80. Debería ver la aplicación de votación en el explorador.You should see the Voting application in the browser.

    Página web de la aplicación de votación

Nota

También puede implementar aplicaciones de Service Fabric con Docker Compose.You can also deploy Service Fabric applications with Docker compose. Por ejemplo, puede usar el siguiente comando para implementar e instalar la aplicación en el clúster mediante Docker Compose.For example, the following command could be used to deploy and install the application on the cluster using Docker Compose.

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

Conmutación por error de un contenedor en un clústerFail over a container in a cluster

Service Fabric se asegura de que las instancias de contenedor se mueven automáticamente a otros nodos del clúster en caso de error.Service Fabric makes sure that your container instances automatically move to other nodes in the cluster if a failure occurs. También puede descargar manualmente un nodo de contenedores y moverlos correctamente a otros nodos del clúster.You can also manually drain a node for containers and move then gracefully to other nodes in the cluster. Service Fabric proporciona varias formas de escalar los servicios.Service Fabric provides several ways to scale your services. En los pasos siguientes, se utiliza Service Fabric Explorer.In the following steps, you use Service Fabric Explorer.

Para conmutar por error el contenedor de front-end, siga estos pasos:To fail over the front-end container, do the following steps:

  1. Abra Service Fabric Explorer en el clúster, por ejemplo, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.Open Service Fabric Explorer in your cluster; for example, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  2. Haga clic en el nodo fabric:/Voting/azurevotefront en la vista de árbol y expanda el nodo de partición (representado por un GUID).Click the fabric:/Voting/azurevotefront node in the tree view and expand the partition node (represented by a GUID). Observe el nombre de nodo de la vista de árbol, que le muestra los nodos en los que el contenedor se ejecuta actualmente; por ejemplo, _nodetype_1.Notice the node name in the treeview, which shows you the nodes that the container is currently running on; for example, _nodetype_1.

  3. Expanda el nodo Nodos en la vista de árbol.Expand the Nodes node in the tree view. Haga clic en el botón de puntos suspensivos (...) situado junto al nodo que ejecuta el contenedor.Click the ellipsis (...) next to the node that is running the container.

  4. Elija Reiniciar para reiniciar ese nodo y confirmar la acción de reinicio.Choose Restart to restart that node and confirm the restart action. El reinicio hace que el contenedor conmute por error a otro nodo del clúster.The restart causes the container to fail over to another node in the cluster.

    Vista de nodo en Service Fabric Explorer

Escalar aplicaciones y servicios en un clústerScale applications and services in a cluster

Es fácil escalar servicios de Service Fabric en un clúster para adaptarse a la carga de los servicios.Service Fabric services can easily be scaled across a cluster to accommodate for the load on the services. Para escalar un servicio, cambie el número de instancias que se ejecutan en el clúster.You scale a service by changing the number of instances running in the cluster.

Para escalar el servicio front-end web, siga estos pasos:To scale the web front-end service, do the following steps:

  1. Abra Service Fabric Explorer en el clúster, por ejemplo, https://containertestcluster.eastus.cloudapp.azure.com:19080.Open Service Fabric Explorer in your cluster; for example,https://containertestcluster.eastus.cloudapp.azure.com:19080.

  2. Haga clic en el botón de puntos suspensivos (...) situado junto al nodo fabric:/Voting/azurevotefront en la vista de árbol y seleccione Scale Service (Escalar servicio).Click the ellipsis (three dots) next to the fabric:/Voting/azurevotefront node in the treeview and choose Scale Service.

    Inicio del servicio de escalado de Service Fabric Explorer

    Ahora puede escalar el número de instancias del servicio front-end web.You can now choose to scale the number of instances of the web front-end service.

  3. Cambie el número a 2 y haga clic en Scale Service (Escalar servicio).Change the number to 2 and click Scale Service.

  4. Haga clic en el nodo fabric:/Voting/azurevotefront en la vista de árbol y expanda el nodo de partición (representado por un GUID).Click the fabric:/Voting/azurevotefront node in the tree-view and expand the partition node (represented by a GUID).

    Finalización del servicio de escalado de Service Fabric Explorer

    Ahora puede ver que el servicio tiene dos instancias.You can now see that the service has two instances. En la vista de árbol, puede ver en qué nodos se ejecutan las instancias.In the tree view, you can see which nodes the instances run on.

Mediante esta sencilla tarea de administración, hemos duplicado los recursos disponibles para el servicio de front-end para procesar la carga de usuarios.Through this simple management task, you've doubled the resources available for the front-end service to process user load. Es importante entender que no hacen falta varias instancias de un servicio para que se ejecute de forma confiable.It's important to understand that you don't need multiple instances of a service for it to run reliably. Si se produce un error en un servicio, Service Fabric se asegurará de que se ejecute una nueva instancia de servicio en el clúster.If a service fails, Service Fabric makes sure that a new service instance runs in the cluster.

Limpieza de recursosClean up resources

Para eliminar la instancia de la aplicación del clúster y anular el registro del tipo de aplicación, utilice el script de desinstalación (uninstall.sh) proporcionado en la plantilla.Use the uninstall script (uninstall.sh) provided in the template to delete the application instance from the cluster and unregister the application type. Este script tarda algún tiempo en limpiar la instancia, por lo que no se debe ejecutar el script de instalación inmediatamente después de este script.This script takes some time to clean up the instance, so you should not run the install script immediately after this script. Puede usar Service Fabric Explorer para determinar cuándo se han eliminado la instancia y el registro del tipo de aplicación.You can use Service Fabric Explorer to determine when the instance has been removed and the application type unregistered.

./uninstall.sh

La manera más sencilla de eliminar el clúster y todos los recursos que consume es eliminar el grupo de recursos.The simplest way to delete the cluster and all the resources it consumes is to delete the resource group.

Inicie sesión en Azure y seleccione el identificador de suscripción con el que quiere quitar el clúster.Sign in to Azure and select the subscription ID with which you want to remove the cluster. Para encontrar el identificador de suscripción, inicie sesión en Azure Portal.You can find your subscription ID by logging in to the Azure portal. Elimine el grupo de recursos y todos los recursos de clúster mediante el comando az group delete.Delete the resource group and all the cluster resources using the az group delete command.

az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName

Si ya ha terminado de trabajar con el clúster, puede eliminar el certificado del almacén de certificados.If you are finished working with your cluster, you can remove the certificate from your certificate store. Por ejemplo:For example:

  • En Windows: use el complemento MMC de certificados.On Windows: Use the Certificates MMC snap-in. No olvide seleccionar Mi cuenta de usuario al agregar el complemento.Be sure to select My user account when adding the snap-in. Vaya a Certificates - Current User\Personal\Certificates y elimine el certificado.Navigate to Certificates - Current User\Personal\Certificates and remove the certificate.
  • En Mac: use la aplicación Keychain.On Mac: Use the Keychain app.
  • En Ubuntu: siga los pasos utilizados para ver los certificados y elimine el certificado.On Ubuntu: Follow the steps you used to view certificates and remove the certificate.

Pasos siguientesNext steps

En esta guía de inicio rápido, ha implementado una aplicación de contenedor de Linux en un clúster de Service Fabric en Azure, ha realizado una conmutación por error de la aplicación y ha escalado la aplicación en el clúster.In this quickstart, you've deployed a Linux container application to a Service Fabric cluster in Azure, performed fail-over on the application, and scaled the application in the cluster. Para más información sobre cómo trabajar con contenedores de Linux en Service Fabric, siga el tutorial para aplicaciones de contenedor de Linux.To learn more about working with Linux containers in Service Fabric, continue to the tutorial for Linux container apps.