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: Azure Stack Edge Pro: GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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
Tiene credenciales de inicio de sesión en un dispositivo Azure Stack Edge Pro de un nodo.
- El dispositivo está activado. Consulte Activación del dispositivo.
- El dispositivo tiene el rol de proceso configurado desde Azure Portal y un clúster de Kubernetes. Consulte Configuración del proceso.
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
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.
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.
- Use
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:
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 a Configuraciones y seleccione +Agregar configuración.
Especifique la extensión Flux versión 1.
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 formatohttp://github.com/username/repo
ogit://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.Se inicia la implementación de la configuración y Operator state (Estado del operador) aparece como Pendiente.
La implementación tarda un par de minutos. Una vez finalizada, Operator state (Estado del operador) se muestra como 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.
Después de aplicar la configuración de GitOps, conéctese a la interfaz de PowerShell del dispositivo.
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>
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>
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 verguestbook
en la dirección URL:https://<external-IP-address>
.
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.
- En Azure Portal, vaya al recurso de Azure Arc > Configuraciones.
- Ubique la configuración que desea eliminar. Seleccione ... para invocar el menú contextual y, después, Eliminar.
La configuración puede tardar varios minutos en eliminarse.