Compartir a través de


Implementar una aplicación

En este artículo se describe cómo implementar una aplicación en contenedor en el clúster de Kubernetes.

Requisitos previos

Para empezar, configure el clúster completo de Kubernetes o Kubernetes de una sola máquina.

Implementación de una aplicación Linux de ejemplo

Paso 1: actualizar el archivo de manifiesto

En este artículo se usa una aplicación de ejemplo que es una aplicación de votación sencilla que consta de un front-end y back-end , que se basa en la imagen azure-vote-front de Microsoft. La imagen de contenedor de esta aplicación se hospeda en Azure Container Registry (ACR). Consulte linux-sample.yaml en el paquete del repositorio de GitHub para el manifiesto de implementación. En YAML, hemos especificado una nodeSelector etiqueta como Linux.

Paso 2: implementación de la aplicación

Para implementar la aplicación, use el comando kubectl apply. Este comando analiza el archivo de manifiesto y crea los objetos de Kubernetes definidos. Especifique el archivo de manifiesto YAML, como se muestra en el ejemplo siguiente:

kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Paso 3: comprobar los pods

Espere unos minutos para que los pods estén en estado de ejecución :

kubectl get pods -o wide

Captura de pantalla en la que se muestran los pods de Linux en ejecución.

Paso 4: comprobar los servicios

Para supervisar el progreso, use el comando kubectl get services con el --watch parámetro :

kubectl get services

Captura de pantalla en la que se muestran los servicios de Linux en ejecución.

Inicialmente, para EXTERNAL-IP el azure-vote-front servicio se muestra como pending. Cuando la EXTERNAL-IP dirección cambia de pending a una dirección IP pública real, puede usar la dirección IP asignada al servicio.

Importante

En clústeres de una sola máquina, si implementó el clúster de Kubernetes sin especificar , -ServiceIPRangeSizeno tendrá direcciones IP asignadas para los servicios de carga de trabajo y no tendrá una dirección IP externa. En este caso, busque la dirección IP de la máquina virtual Linux (Get-AksEdgeNodeAddr):

Get-AksEdgeNodeAddr -NodeType Linux

Ahora puede anexar el puerto externo a la dirección IP de la máquina virtual (por ejemplo, 192.168.1.12:30432).

Paso 5: probar la aplicación

Para ver la aplicación en acción, abra un explorador web en la dirección IP externa del servicio:

Captura de pantalla en la que se muestran las aplicaciones de Linux que se están ejecutando.

Si la aplicación no se carga, puede deberse a un problema de autorización con el registro de imágenes. Para ver el estado de los contenedores, use el comando kubectl get pods. Si no se pueden recuperar las imágenes de contenedor, consulte Autenticación con Azure Container Registry desde Azure Kubernetes Service.

Paso 6: quitar la aplicación

Para limpiar, elimine todos los recursos mediante el siguiente comando:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Implementación de una aplicación de Windows de ejemplo en el clúster

En este ejemplo se ejecuta una aplicación ASP.NET de ejemplo basada en la imagen de ejemplo de Microsoft. Consulte win-sample.yaml. YAML especifica la nodeSelector etiqueta como Windows.

Paso 1: implementar la aplicación especificando el nombre del manifiesto de YAML

Asegúrese de que está en el directorio de YAML en una ventana de PowerShell y, a continuación, ejecute el siguiente comando:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Paso 2: comprobar que el pod de ejemplo se está ejecutando

El pod puede tardar un tiempo en alcanzar el estado de ejecución, en función de la conexión a Internet. La imagen ASP.NET es grande:

kubectl get pods -o wide

Captura de pantalla en la que se muestran los pods de Windows en ejecución.

Paso 3: comprobar que el servicio de ejemplo se está ejecutando

kubectl get services

Captura de pantalla en la que se muestran los servicios de Windows en ejecución.

Dado que este ejemplo se implementa como un servicio de tipo NodePort, puede recuperar la dirección IP del nodo de Kubernetes en el que se ejecuta la aplicación y, a continuación, anexar el puerto de NodePort. Obtenga la dirección IP del nodo de Kubernetes mediante el siguiente Get-AksEdgeNodeAddrcomando:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot que muestra información del clúster de Windows.

Paso 4: comprobar el ejemplo de Windows en ejecución

Abra un explorador web y busque NodePort para acceder al servicio:

Captura de pantalla en la que se muestra la ejecución de la aplicación de Windows.

Paso 5: limpiar

Para limpiar, elimine todos los recursos mediante el siguiente comando:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Implementación de sus propias aplicaciones

Los pasos anteriores muestran cómo puede implementar nuestras aplicaciones de ejemplo. Para implementar su propia aplicación, haga lo siguiente:

  • Empaquete la aplicación en una imagen de contenedor y cargue la imagen en Azure Container Registry o en un registro de contenedor de su elección. Revise estos pasos para crear una imagen de contenedor de la aplicación.

  • AKS Edge Essentials habilita clústeres de sistema operativo mixto. Asegúrese de que los pods se programan en los nodos con el sistema operativo correspondiente. Agregue nodeSelector a los archivos de implementación. Esta opción indica a Kubernetes que ejecute los pods en nodos de un sistema operativo (SO) determinado. Si el clúster es de un solo sistema operativo, puede omitir este paso; pero para el procedimiento recomendado, etiquete cada archivo de implementación con selectores de nodo:

    nodeSelector:
        "kubernetes.io/os": linux
    
    nodeSelector:
        "kubernetes.io/os": windows
    

Pasos siguientes