Recupera el menú aprobado

KubernetesBeginner
Practicar Ahora

Introducción

Juniper Café atiende solicitudes, pero el último menú cobra $35.00 por un Oat Latte. Un Pod saludable puede seguir sirviendo datos de negocio incorrectos. Restaurarás el menú de otoño aprobado y conservarás la cafetería, sus versiones anteriores y el servicio independiente de la sala de lectura.

Este es un entorno nuevo con su propio historial de versiones preparado. No usa archivos ni procesos del laboratorio anterior. Debes haber completado el laboratorio del menú de temporada: esta lección reutiliza su formato de menú, los ConfigMaps generados, el Deployment y las comprobaciones de descarga, y después introduce la selección de revisiones y la recuperación. La duración de 35 minutos es una estimación del autor, no una medición del tiempo de principiantes.

Restaura la revisión aprobada

En este paso, usarás el menú real y el historial del Deployment para elegir y restaurar la versión de otoño aprobada.

Abre Café Menu, selecciona Explore the menu y busca Oat Latte. El precio actual de $35.00 es incorrecto aunque el sitio web y sus páginas de detalles de bebidas se carguen. Cambia a Workspace, cuyo directorio inicial es /home/labex/project/cafe-menu.

Lee la tabla completa aprobada por el equipo del mostrador y la etiqueta de temporada. Como en el laboratorio anterior, los precios son céntimos enteros; 350 significa $3.50:

cat approved/menu.csv
id,name,price_cents,available
espresso,Espresso,250,true
oat-latte,Oat Latte,350,true
cold-brew,Cold Brew,390,false
maple-latte,Maple Latte,450,true
cat approved/season.txt
Autumn at Juniper

Un despliegue correcto significa que Kubernetes alcanzó el estado de Pod solicitado. No valida todos los precios del menú. Comprueba el Deployment saludable y luego enumera sus revisiones. rollout history lee los ReplicaSets conservados; el texto de la causa del cambio ayuda a identificar cada versión preparada:

kubectl get deployment cafe -n cafe-menu
kubectl rollout history deployment/cafe -n cafe-menu

El historial contiene las revisiones everyday, autumn y misprint, en ese orden. Los números de revisión pertenecen a este Deployment en este entorno nuevo; no trates un número como un nombre de versión universal.

También están disponibles las versiones completas guardadas. Compara el menú habitual anterior con el de otoño aprobado:

cat versions/everyday/menu.json
cat versions/autumn/menu.json

La versión habitual tiene un precio correcto para Oat Latte, pero todavía ofrece Cold Brew y no ofrece Maple Latte. Por tanto, restaurar cualquier versión anterior sería incorrecto. La versión de otoño coincide con todos los valores aprobados y con la etiqueta de temporada.

Inspecciona la revisión 2, la revisión de otoño preparada en este entorno. --revision=2 solicita los detalles de su plantilla de Pod:

kubectl rollout history deployment/cafe -n cafe-menu --revision=2

Busca la referencia al ConfigMap generado del volumen menu. Esta plantilla guardada puede iniciar nuevos Pods con esa configuración anterior exacta porque el ConfigMap todavía existe.

Restaura esa revisión. rollout undo cambia el Deployment a la plantilla de Pod anterior seleccionada; --to-revision=2 selecciona explícitamente la aprobada:

kubectl rollout undo deployment/cafe -n cafe-menu --to-revision=2

Espera a que ambas réplicas se restauren:

kubectl rollout status deployment/cafe -n cafe-menu --timeout=120s
deployment "cafe" successfully rolled out

Cambia a Café Menu, selecciona Our menu y actualiza si es necesario. Confirma que Oat Latte cuesta $3.50, Maple Latte está disponible a $4.50 y Cold Brew no está disponible. Si se agota el tiempo de espera, usa el procedimiento de diagnóstico con kubectl get pods y kubectl describe deployment enseñado en el laboratorio anterior; no restablezcas el espacio de nombres.

El menú aprobado restaurado

Compara las cuatro tarjetas, incluida Cold Brew, que no está disponible.

Un límite importante: deshacer restaura la plantilla de Pod, incluido el nombre de su configuración. No restaura contenidos anteriores arbitrarios de un ConfigMap editado directamente. Mantén sin cambios cada configuración generada conservada.

Sincroniza la versión guardada

En este paso, harás que tu versión guardada reproduzca la aplicación recuperada en servicio.

Vuelve a Workspace. Una reversión en servicio no edita los archivos locales. El directorio release todavía contiene la versión candidata incorrecta; aplicarlo ahora devolvería el precio erróneo. Lee ese archivo antes de sustituirlo:

cat release/menu.json

Todavía contiene 3500 céntimos para Oat Latte. Copia el menú de otoño aprobado y la definición del Deployment a tu versión de trabajo. Cada cp sustituye solo el archivo de destino indicado. Mantén sin cambios los directorios de versiones originales:

cp versions/autumn/menu.json release/menu.json
cp versions/autumn/deployment.json release/deployment.json

El archivo del Deployment también incluye la anotación de causa del cambio aprobada. Tu kustomization.yaml existente mantiene el mismo generador y espacio de nombres. Vuelve a generar los manifiestos de la versión:

kubectl kustomize release

El nombre de configuración generado debe coincidir con la referencia de la plantilla de otoño restaurada. No se necesita una nueva versión de datos porque son los mismos bytes del menú. Aplica la fuente sincronizada:

kubectl apply -k release
kubectl rollout status deployment/cafe -n cafe-menu --timeout=120s

El despliegue termina y el menú aprobado sigue en uso. Ahora, una nueva aplicación conserva la recuperación en vez de deshacerla. Conserva todo el directorio release: el Deployment, el archivo del menú y la configuración del generador trabajan juntos. Si copiaste una ruta incorrecta, pwd y ls versions/autumn ayudan a localizar los archivos proporcionados; repite las dos copias precisas en lugar de editar el historial conservado.

Entrega el menú recuperado

En este paso, terminarás con una descarga real del menú y confirmarás que la cafetería no afectada sigue funcionando.

Cambia a Café Menu. Desde Our menu, abre el enlace About this drink de Oat Latte, confirma el precio corregido de $3.50 en los detalles y vuelve con Back to the menu. Abre Visit us y confirma la ubicación y el horario. Usa Download menu para descargar el menú completo real.

Cambia a Reference Menu y selecciona Our menu. Willow Reading Room debe seguir mostrando su selección habitual; reparar Juniper no debe cambiar este servicio independiente.

Vuelve a Workspace. Guarda la descarga real con las mismas opciones de curl enseñadas en el primer laboratorio:

curl --fail --silent --show-error http://127.0.0.1:8081/menu.csv -o menu-handover.csv

Compárala con la tabla aprobada:

diff -u approved/menu.csv menu-handover.csv

Si no hay salida, la descarga completa coincide. Si aparecen diferencias, usa las filas reales para distinguir una versión restaurada incorrecta de una fuente guardada desactualizada. Corrige la versión, espera al despliegue y descarga de nuevo; no edites manualmente el CSV recibido.

Enumera las configuraciones para confirmar que las versiones anteriores siguen disponibles:

kubectl get configmaps -n cafe-menu

La recuperación está completa cuando coinciden la cafetería en ejecución, la fuente reutilizable y la descarga real para el personal. Las versiones de fuente anteriores y los objetos de configuración generados permanecen intactos.

Resumen

Distinguiste una aplicación saludable de un menú correcto, elegiste una revisión mediante evidencias de negocio completas y restauraste su referencia de configuración conservada. También sincronizaste la versión local para que una aplicación posterior mantenga la recuperación y comprobaste las páginas reales y la descarga real del menú sin cambiar el servicio de referencia.

El desafío independiente cambia la cafetería, las relaciones del menú y la versión aprobada. Utiliza los mismos métodos de configuración, despliegue y entrega.