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 Pro GPU SKUAzure Stack Edge Pro: GPUSí para Pro 2 SKUAzure Stack Edge Pro 2Sí para Pro R SKUAzure Stack Edge Pro RSí para Mini R SKUAzure Stack Edge Mini R

En este artículo se muestra cómo compilar e implementar una aplicación web sencilla de varios niveles con 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 de Redis replicadas para atender las lecturas
  • Varias instancias de front-end web

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

Este procedimiento está dirigido a los usuarios que han examinado las cargas de trabajo de Kubernetes en un dispositivo Azure Stack Edge Pro y están familiarizados con los conceptos de ¿Qué es Kubernetes habilitado para Azure Arc (versión preliminar)?

Nota:

Este artículo contiene referencias al término esclavo, un término que Microsoft ya no usa. Cuando se quite el término del software, se quitará también del artículo.

Requisitos previos

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

Para el dispositivo

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

    1. El dispositivo está activado. Consulte Activación del dispositivo.
    2. El dispositivo tiene el rol de proceso configurado desde Azure Portal y un clúster de Kubernetes. Consulte Configuración del proceso.
  2. Ha habilitado Azure Arc en el clúster de Kubernetes existente en el dispositivo y tiene un recurso de Arc de Azure correspondiente en Azure Portal. Para conocer los pasos detallados, consulte Habilitación de Azure Arc en un dispositivo Azure Stack Edge Pro.

Para el cliente que va a acceder al dispositivo

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

    • El cliente ejecuta Windows PowerShell 5.0 o una versión posterior. Para descargar la última versión de Windows PowerShell, vaya a Instalación de Windows PowerShell.

    • También puede tener otro cliente con un sistema operativo compatible. En este artículo, el procedimiento que se describe emplea un cliente Windows.

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

    • instalado 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.
      • Compruebe la compatibilidad entre estas dos versiones con la asignación proporcionada en la versión de Kubernetes admitida.
  3. Tiene una configuración de GitOps que puede usar para ejecutar una implementación de Azure Arc. En este ejemplo se usan los siguientes archivos yaml para la implementación en un dispositivo Azure Stack Edge Pro.

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

Configuración de la implementació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.

    Ir 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 seleccione Agregar.

    Parámetro Descripción
    Nombre de la configuración Nombre del recurso de configuración.
    Nombre de la instancia del operador Nombre de instancia del operador que identifica una configuración concreta. 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 Se establece en demotestguestbook para coincidir con el espacio de nombres especificado en la implementación yaml.
    El campo define el espacio de nombres en el que 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 de acceso al repositorio de Git en formato http://github.com/username/repo o git://github.com/username/repo en el que se encuentra la configuración de GitOps.
    Ámbito del operador Seleccione Espacio de nombres.
    Este parámetro define el ámbito en el que se instala el operador. Seleccione Espacio de nombres para instalar el operador en el espacio de nombres especificado en los archivos yaml de implementación.
    Tipo de operador Deje el valor predeterminado.
    Este parámetro especifica el tipo de operador, que se establece como flujo de forma predeterminada.
    Parámetros del operador Déjelo en blanco.
    Este parámetro contiene los parámetros que se van a pasar al operador de flujo.
    Helm Deje desactivada esta casilla.
    Habilite esta opción si va a realizar implementaciones basadas en gráficos.

    Adición de configuración

  5. Se inicia la implementación de la configuración y Operator state (Estado del operador) aparece 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. Una vez finalizada, Operator state (Estado del 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 espacio de nombres de demotestguestbook 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-slave-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-slave-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. En este ejemplo, el servicio de front-end se ha implementado como type:LoadBalancer. Tendrá que 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-slave    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. El servicio de 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 las opciones de red de proceso en el dispositivo. Use esta dirección IP para ver guestbook en la dirección URL: https://<external-IP-address>.

    Visualización del libro de visitas

Eliminación de la implementación

Para eliminar la implementación, puede eliminar la configuración de Azure Portal. Al eliminar la configuración se eliminarán los objetos que se crearon, incluidas las implementaciones y los servicios.

  1. En Azure Portal, vaya al recurso de Azure Arc > Configuraciones.
  2. Ubique la configuración que desea eliminar. Seleccione ... para invocar el menú contextual y, después, 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 un dispositivo Azure Stack Edge Pro.