Tutorial: Ejecución de aplicaciones en Azure Kubernetes Service (AKS)Tutorial: Run applications in Azure Kubernetes Service (AKS)

Kubernetes proporciona una plataforma distribuida para aplicaciones en contenedores.Kubernetes provides a distributed platform for containerized applications. Compile e implemente sus propios servicios y aplicaciones en un clúster de Kubernetes, y deje que el clúster administre la disponibilidad y conectividad.You build and deploy your own applications and services into a Kubernetes cluster, and let the cluster manage the availability and connectivity. En este tutorial, la cuarta parte de siete, se implementa una aplicación de ejemplo en un clúster de Kubernetes.In this tutorial, part four of seven, a sample application is deployed into a Kubernetes cluster. Aprenderá a:You learn how to:

  • Actualizar los archivos de manifiesto de KubernetesUpdate a Kubernetes manifest file
  • Ejecutar una aplicación en KubernetesRun an application in Kubernetes
  • Prueba de la aplicaciónTest the application

En tutoriales adicionales, esta aplicación se escala horizontalmente y se actualiza.In additional tutorials, this application is scaled out and updated.

En esta guía rápida se presupone un conocimiento básico de los conceptos de Kubernetes.This quickstart assumes a basic understanding of Kubernetes concepts. Para más información, consulte Conceptos básicos de Kubernetes de Azure Kubernetes Service (AKS).For more information, see Kubernetes core concepts for Azure Kubernetes Service (AKS).

Antes de empezarBefore you begin

En tutoriales anteriores se empaquetó una aplicación en una imagen de contenedor, se cargó esta imagen en Azure Container Registry y se creó un clúster de Kubernetes.In previous tutorials, an application was packaged into a container image, this image was uploaded to Azure Container Registry, and a Kubernetes cluster was created.

Para completar este tutorial, necesita el archivo de manifiesto de Kubernetes azure-vote-all-in-one-redis.yaml creado previamente.To complete this tutorial, you need the pre-created azure-vote-all-in-one-redis.yaml Kubernetes manifest file. Este archivo se descargó con el código fuente de la aplicación en un tutorial anterior.This file was downloaded with the application source code in a previous tutorial. Confirme que ha clonado el repositorio y que ha cambiado los directorios en el repositorio clonado.Verify that you've cloned the repo, and that you have changed directories into the cloned repo. Si no ha realizado estos pasos, pero quiere continuar, comience con el Tutorial 1: Creación de imágenes de contenedor.If you haven't done these steps, and would like to follow along, start with Tutorial 1 – Create container images.

Para realizar este tutorial es necesario ejecutar la versión 2.0.53, o superior, de la CLI de Azure.This tutorial requires that you're running the Azure CLI version 2.0.53 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.

Actualización del archivo de manifiestoUpdate the manifest file

En estos tutoriales, una instancia de Azure Container Registry (ACR) almacena la imagen del contenedor de la aplicación de ejemplo.In these tutorials, an Azure Container Registry (ACR) instance stores the container image for the sample application. Para implementar la aplicación, debe actualizar el nombre de la imagen en el archivo de manifiesto de Kubernetes para incluir el nombre del servidor de inicio de sesión de ACR.To deploy the application, you must update the image name in the Kubernetes manifest file to include the ACR login server name.

Para obtener el nombre del servidor de inicio de sesión de ACR se usa el comando az acr list, como se muestra a continuación:Get the ACR login server name using the az acr list command as follows:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

El archivo de manifiesto de ejemplo del repositorio git clonado en el primer tutorial usa el nombre de servidor de inicio de sesión microsoft.The sample manifest file from the git repo cloned in the first tutorial uses the login server name of microsoft. Asegúrese de que está en el directorio clonaod azure-voting-app-redis y abra el archivo de manifiesto con un editor de texto, como vi:Make sure that you're in the cloned azure-voting-app-redis directory, then open the manifest file with a text editor, such as vi:

vi azure-vote-all-in-one-redis.yaml

Reemplace microsoft por el nombre del servidor de inicio de sesión de ACR.Replace microsoft with your ACR login server name. El nombre de la imagen se encuentra en la línea 51 del archivo de manifiesto.The image name is found on line 51 of the manifest file. En el ejemplo siguiente se muestra el nombre de imagen predeterminado:The following example shows the default image name:

containers:
- name: azure-vote-front
  image: microsoft/azure-vote-front:v1

Especifique su propio nombre del servidor de inicio de sesión de ACR para que el archivo de manifiesto sea parecido al del ejemplo siguiente:Provide your own ACR login server name so that your manifest file looks like the following example:

containers:
- name: azure-vote-front
  image: <acrName>.azurecr.io/azure-vote-front:v1

Guarde y cierre el archivo.Save and close the file. En vi, use :wq.In vi, use :wq.

Implementación de la aplicaciónDeploy the application

Para implementar la aplicación, use el comando kubectl apply.To deploy your application, use the kubectl apply command. Este comando analiza el archivo de manifiesto y crea los objetos de Kubernetes definidos.This command parses the manifest file and creates the defined Kubernetes objects. Especifique el archivo de manifiesto de ejemplo, como se muestra en el ejemplo siguiente:Specify the sample manifest file, as shown in the following example:

kubectl apply -f azure-vote-all-in-one-redis.yaml

La salida de ejemplo siguiente muestra los recursos que se crearon correctamente en el clúster de AKS:The following example output shows the resources successfully created in the AKS cluster:

$ kubectl apply -f azure-vote-all-in-one-redis.yaml

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Prueba de la aplicaciónTest the application

Cuando se ejecuta la aplicación, un servicio de Kubernetes expone el front-end de la aplicación a Internet.When the application runs, a Kubernetes service exposes the application front end to the internet. Este proceso puede tardar unos minutos en completarse.This process can take a few minutes to complete.

Para supervisar el progreso, utilice el comando kubectl get service con el argumento --watch.To monitor progress, use the kubectl get service command with the --watch argument.

kubectl get service azure-vote-front --watch

En un primer momento, el parámetro EXTERNAL-IP del servicio azure-vote-front se muestra como pendiente:Initially the EXTERNAL-IP for the azure-vote-front service is shown as pending:

azure-vote-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s

Cuando la dirección EXTERNAL-IP cambie de pendiente a una dirección IP pública real, use CTRL-C para detener el proceso de inspección de kubectl.When the EXTERNAL-IP address changes from pending to an actual public IP address, use CTRL-C to stop the kubectl watch process. En la salida del ejemplo siguiente se muestra una dirección IP pública válida asignada al servicio:The following example output shows a valid public IP address assigned to the service:

azure-vote-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s

Para ver la aplicación en acción, abra un explorador web en la dirección IP externa del servicio:To see the application in action, open a web browser to the external IP address of your service:

Imagen del clúster de Kubernetes en Azure

Si no se cargó la aplicación, esto se puede deber a un problema de autorización con el registro de la imagen.If the application didn't load, it might be due to an authorization problem with your image registry. Para ver el estado de los contenedores, use el comando kubectl get pods.To view the status of your containers, use the kubectl get pods command. Si las imágenes del contenedor no se pueden extraer, consulte Autenticación con Azure Container Registry desde Azure Kubernetes Service.If the container images can't be pulled, see Authenticate with Azure Container Registry from Azure Kubernetes Service.

Pasos siguientesNext steps

En este tutorial, una instancia de la aplicación Azure Vote de ejemplo se implementó en un clúster de Kubernetes en AKS.In this tutorial, a sample Azure vote application was deployed to a Kubernetes cluster in AKS. Ha aprendido a:You learned how to:

  • Actualizar los archivos de manifiesto de KubernetesUpdate a Kubernetes manifest files
  • Ejecutar una aplicación en KubernetesRun an application in Kubernetes
  • Prueba de la aplicaciónTest the application

Pase al siguiente tutorial para aprender a escalar una aplicación Kubernetes y la infraestructura de Kubernetes subyacente.Advance to the next tutorial to learn how to scale a Kubernetes application and the underlying Kubernetes infrastructure.