Comparteix 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:Yes for Pro GPU SKUAzure Stack Edge Pro: GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for 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 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 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.

    Go to Azure Arc resource

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

    Screenshot shows the Azure Arc-enabled Kubernetes cluster with Add configuration selected.

  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 Descripción
    Nombre de 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 esta casilla Desactivada.
    Habilite esta opción si va a realizar implementaciones basadas en gráficos.

    Add configuration

  5. Se inicia la implementación de la configuración y Operator state (Estado del operador) aparece como Pendiente.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in a pending state as it refreshes.

  6. La implementación tarda un par de minutos. Una vez finalizada, Operator state (Estado del operador) se muestra como Instalado.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in an installed state.

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>.

    View guestbook

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. Delete configuration

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.