Compartir a través de


Implementación de una aplicación sin estado Guestbook PHP con Redis en un clúster de Kubernetes habilitado para Azure Arc en Azure Stack Edge Pro con GPU

SE APLICA A:Sí para la SKU Pro GPUAzure Stack Edge Pro - GPUSí para la SKU Pro 2Azure Stack Edge Pro 2Sí para la SKU Pro RAzure Stack Edge Pro RSí para la SKU Mini RAzure Stack Edge Mini R

En este artículo se muestra cómo compilar e implementar una aplicación web de varios niveles mediante Kubernetes y Azure Arc. Este ejemplo consta de los siguientes componentes:

  • Un maestro de Redis de instancia única para almacenar las entradas de guestbook
  • Varias instancias replicadas de Redis para atender solicitudes de lectura
  • Varias instancias de front-end web

La implementación se realiza mediante GitOps en el clúster de Kubernetes habilitado para Azure Arc en el dispositivo Azure Stack Edge Pro.

Este procedimiento está diseñado para personas que han revisado las cargas de trabajo de Kubernetes en el dispositivo Azure Stack Edge Pro y están familiarizados con los conceptos de ¿Qué es Kubernetes habilitado para Azure Arc (versión preliminar)?

Prerrequisitos

Para poder implementar la aplicación sin estado, asegúrese de que ha completado los siguientes requisitos previos en el dispositivo y el cliente que usará para acceder al dispositivo:

Para el dispositivo

  1. Tiene credenciales de inicio de sesión en un dispositivo Azure Stack Edge Pro de 1 nodo.

    1. El dispositivo está activado. Consulte Activar el dispositivo.
    2. El dispositivo tiene el rol de proceso configurado mediante Azure Portal y tiene un clúster de Kubernetes. Consulte Configurar recursos de cómputo.
  2. Ha habilitado Azure Arc en el clúster de Kubernetes existente en el dispositivo y tiene un recurso de Azure Arc correspondiente en Azure Portal. Para ver los pasos detallados, consulte Habilitación de Azure Arc en el dispositivo Azure Stack Edge Pro.

Para que el cliente acceda al dispositivo

  1. Tiene un sistema cliente de Windows que se usará para acceder al dispositivo Azure Stack Edge Pro.

    • El cliente ejecuta Windows PowerShell 5.0 o posterior. Para descargar la versión más reciente de Windows PowerShell, vaya a Instalar Windows PowerShell.

    • También puede tener cualquier otro cliente con un sistema operativo compatible . En este artículo se describe el procedimiento al usar un cliente de Windows.

  2. Ha completado el procedimiento descrito en Acceso al clúster de Kubernetes en el dispositivo Azure Stack Edge Pro. Tiene:

    • Se instaló kubectl en el cliente.

    • Asegúrese de que la versión del cliente de kubectl es como máximo una versión superior o inferior a la versión maestra de Kubernetes que se ejecuta en el dispositivo Azure Stack Edge Pro.

      • Use kubectl version para comprobar la versión de kubectl que se ejecuta en el cliente. Anote la versión completa.
      • En la interfaz de usuario local del dispositivo Azure Stack Edge Pro, vaya a Información general y anote el número de software de Kubernetes.
      • Verifique que estas dos versiones sean compatibles con el mapeo proporcionado en las versiones de Kubernetes compatibles.
  3. Tiene una configuración de GitOps que puede usar para ejecutar una implementación de Azure Arc. En este ejemplo, usará los siguientes yaml archivos para implementar en el dispositivo Azure Stack Edge Pro.

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-replica-deployment.yaml
    • redis-replica-service.yaml

Implementación de la configuración

Siga estos pasos para configurar el recurso de Azure Arc para implementar una configuración de GitOps mediante Azure Portal:

  1. En Azure Portal, vaya al recurso de Azure Arc que ha creado al habilitar Azure Arc en el clúster de Kubernetes en el dispositivo.

    Vaya al recurso de Azure Arc.

  2. Vaya a Configuraciones y seleccione + Agregar configuración.

    Captura de pantalla que muestra el clúster de Kubernetes habilitado para Azure Arc con la opción Agregar configuración seleccionada.

  3. Especifique la extensión Flux versión 1.

  4. En Agregar una configuración de GitOps, escriba los valores adecuados para los campos y, a continuación, seleccione Agregar.

    Parámetro Description
    Nombre de la configuración Nombre del recurso de configuración.
    Nombre de instancia del operador Nombre de instancia del operador para identificar una configuración específica. Name es una cadena con un máximo de 253 caracteres; se admiten solo minúsculas, caracteres alfanuméricos, guiones y puntos.
    Espacio de nombres del operador El valor se establece en demotestguestbook para que coincida con el espacio de nombres especificado en la implementación yaml.
    El campo define el espacio de nombres donde está instalado el operador. Name es una cadena con un máximo de 253 caracteres; se admiten solo minúsculas, caracteres alfanuméricos, guiones y puntos.
    Dirección URL del repositorio
    Ruta al repositorio de Git en formato http://github.com/username/repo o git://github.com/username/repo donde se encuentra tu configuración de GitOps.
    Ámbito del operador Seleccione Espacio de nombres.
    Este parámetro define el ámbito en el que está instalado el operador. Seleccione namespace para instalar el operador en el namespace especificado en los archivos YAML de implementación.
    Tipo de operador Dejar en la configuración por defecto.
    Este parámetro especifica el tipo del operador , de forma predeterminada, establecido como flux.
    Parámetros del operador Déjelo en blanco.
    Este parámetro contiene parámetros para pasar al operador de flujo.
    Helm Deje esta casilla Desactivada.
    Habilite esta opción si va a realizar implementaciones basadas en gráficos.

    Agregar configuración

  5. La implementación de configuración se inicia y el estado Operador se muestra como Pendiente.

    Captura de pantalla que muestra el clúster de Kubernetes habilitado para Azure Arc en un estado pendiente cuando se actualiza.

  6. La implementación tarda un par de minutos. Cuando se complete la implementación, el estado Operador se muestra como Instalado.

    Captura de pantalla que muestra el clúster de Kubernetes habilitado para Azure Arc en un estado instalado.

Comprobación de la implementación

La implementación mediante la configuración de GitOps crea un espacio de nombres de demotestguestbook como se especifica en los archivos yaml de implementación ubicados en el repositorio de Git.

  1. Después de aplicar la configuración de GitOps, conéctese a la interfaz de PowerShell del dispositivo.

  2. Ejecute el siguiente comando para enumerar los pods que se ejecutan en el demotestguestbook espacio de nombres correspondiente a la implementación.

    kubectl get pods -n <your-namespace>

    Esta es una salida de ejemplo.

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-replica-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-replica-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. En este ejemplo, el servicio front-end se implementó como type:LoadBalancer. Es necesario buscar la dirección IP de este servicio para ver guestbook. Ejecute el siguiente comando.

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-replica    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. El servicio front-end de type:LoadBalancer tiene una dirección IP externa. Esta dirección IP procede del intervalo de direcciones IP que especificó para los servicios externos al configurar la configuración de red de proceso en el dispositivo. Use esta dirección IP para ver el guestbook en la URL: https://<external-IP-address>.

    Visualización del libro de invitados

Eliminación de la implementación

Para eliminar la implementación, puede eliminar la configuración del portal de Azure. Al eliminar la configuración, se eliminarán los objetos creados, incluidas las implementaciones y los servicios.

  1. En Azure Portal, vaya a Configuraciones de recursos > de Azure Arc.
  2. Busque la configuración que desea eliminar. Seleccione ... para invocar el menú contextual y seleccionar Eliminar. Eliminar configuración

La configuración puede tardar varios minutos en eliminarse.

Pasos siguientes

Aprenda a usar el panel de Kubernetes para supervisar las implementaciones en el dispositivo Azure Stack Edge Pro