arrow_back

Implementa clústeres de GKE Autopilot desde Cloud Shell

Acceder Unirse
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Implementa clústeres de GKE Autopilot desde Cloud Shell

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Descripción general

En este lab, usarás la línea de comandos para crear clústeres de GKE. Inspeccionarás el archivo kubeconfig y usarás kubectl para manipular el clúster.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Usar kubectl para crear y manipular clústeres de GKE
  • Usar kubectl y archivos de configuración para implementar Pods
  • Usar Container Registry para implementar y almacenar contenedores

Configuración del lab

Accede a Qwiklabs

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Después de completar los pasos iniciales de acceso, aparecerá el panel del proyecto.

Página con la pestaña del panel del proyecto

Abre Cloud Shell

La mayor parte del trabajo la harás en Cloud Shell. Cloud Shell es un entorno de línea de comandos que se ejecuta en Google Cloud. Esta máquina virtual basada en Debian está cargada con todas las herramientas de administración que necesitas (como Docker, gcloud, gsutil y kubectl) y ofrece un directorio principal persistente de 5 GB.

  1. En la barra de título de la consola de Google Cloud, haz clic en Activar Cloud Shell (Ícono de Activar Cloud Shell).
  2. Haz clic en Continuar.

Después de un momento de aprovisionamiento, se mostrará el símbolo del sistema de Cloud Shell:

Prompt de Cloud Shell con el mensaje: Te damos la bienvenida a Cloud Shell Escribe "help" para comenzar.

Tarea 1: Implementa clústeres de GKE

En esta tarea, usarás Cloud Shell para implementar clústeres de GKE.

  1. En Cloud Shell, escribe el siguiente comando para establecer la variable de entorno para la zona y el nombre del clúster:
export my_region={{{project_0.default_region|Region}}} export my_cluster=autopilot-cluster-1
  1. En Cloud Shell, escribe el siguiente comando para crear un clúster de Kubernetes:
gcloud container clusters create-auto $my_cluster --region $my_region

Esta versión del comando establece la mayor parte de las opciones en sus valores predeterminados. Para ver todas las opciones posibles, consulta la referencia de gcloud container clusters create.

Verás algunas advertencias en las que se indican los cambios realizados en la configuración predeterminada de los clústeres de GKE en función de las versiones nuevas de Kubernetes que se adoptaron.

Nota: Deberás esperar algunos minutos a que se complete la implementación del clúster.

Una vez completada la implementación, la página Kubernetes Engine > Clústeres de la consola de Google Cloud debería verse como en la captura de pantalla:

La página Clústeres de Kubernetes con detalles como la ubicación, el tamaño del clúster, los núcleos totales y la memoria total de autopilot-cluster-1

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar clústeres de GKE

Tarea 2: Conéctate a un clúster de GKE

En esta tarea, usarás Cloud Shell para autenticarte en un clúster de GKE y, luego, inspeccionarás los archivos de configuración de kubectl.

La autenticación en Kubernetes se aplica tanto a la comunicación con el clúster desde un cliente externo, mediante el kube-apiserver que se ejecuta en la instancia principal, como a los contenedores del clúster que se comunican dentro del clúster o de manera externa.

En Kubernetes, la autenticación puede adoptar varias formas. Para GKE, la autenticación suele realizarse con tokens de OAuth2 y puede administrarse mediante Cloud Identity and Access Management en todo el proyecto. De manera opcional, también puede administrarse mediante un control de acceso basado en roles, que puede definirse y configurarse dentro de cada clúster.

En GKE, los contenedores del clúster pueden usar cuentas de servicio para autenticarse en los recursos externos y acceder a ellos.

Nota: En las versiones de Kubernetes anteriores a la 1.12, los certificados de cliente y la autenticación básica no están inhabilitados de forma predeterminada. Ambos son métodos de autenticación menos seguros y deben inhabilitarse para aumentar la seguridad del clúster. (En las versiones 1.12 y posteriores, ambos están inhabilitados de forma predeterminada).
  1. Para crear un archivo kubeconfig con las credenciales del usuario actual (para permitir la autenticación) y proporcionar los detalles del extremo de un clúster específico (para permitir la comunicación con ese clúster a través de la herramienta de línea de comandos kubectl), ejecuta el siguiente comando:
gcloud container clusters get-credentials $my_cluster --region $my_region

Con este comando, se crea un directorio .kube en tu directorio principal en caso de que aún no haya uno. En el directorio .kube, el comando crea un archivo llamado config, en caso de que aún no haya uno, que se utiliza para almacenar la información de autenticación y configuración. Por lo general, el archivo de configuración se llama archivo kubeconfig.

  1. Abre el archivo kubeconfig con el editor de texto nano:
nano ~/.kube/config

Ahora puedes examinar todos los datos de autenticación y configuración del extremo que están almacenados en el archivo. Debería aparecer información sobre el clúster, que se propagó durante la creación de este.

  1. Presiona Ctrl + X para salir del editor nano.
Nota: El archivo kubeconfig puede contener información de muchos clústeres. La propiedad current-context indica cuál es el contexto activo actualmente (el clúster que manipulan los comandos de kubectl).

No es necesario que ejecutes el comando gcloud container clusters get-credentials y propagues así el archivo kubeconfig para los clústeres que creaste en el mismo contexto (el mismo usuario en el mismo entorno), dado que los detalles de esos clústeres ya se propagan durante su creación.

Sin embargo, debes ejecutar el comando para conectarte a un clúster creado por otro usuario o en otro entorno. El comando también permite cambiar con facilidad el contexto activo a un clúster distinto.

Tarea 3: Usa kubectl para inspeccionar un clúster de GKE

En esta tarea, usarás Cloud Shell y kubectl para inspeccionar un clúster de GKE.

Una vez que el archivo kubeconfig se haya propagado y el contexto activo esté establecido en un clúster determinado, puedes usar la herramienta de línea de comandos kubectl para ejecutar comandos en el clúster. La mayoría de estos comandos activan finalmente una llamada a la API de REST en el servidor de API de la instancia principal, lo cual activa la acción asociada.

  1. En Cloud Shell, ejecuta el siguiente comando para mostrar el contenido del archivo kubeconfig:
kubectl config view

Los datos sensibles del certificado se reemplazan por DATA+OMITTED.

  1. En Cloud Shell, ejecuta el siguiente comando para mostrar la información del clúster correspondiente al contexto activo:
kubectl cluster-info

El resultado describe el clúster del contexto activo.

Resultado:

Kubernetes control plane is running at https://34.133.211.75 GLBCDefaultBackend is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy KubeDNS is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy KubeDNSUpstream is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/kube-dns-upstream:dns/proxy Metrics-server is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
  1. En Cloud Shell, ejecuta el siguiente comando para mostrar el contexto activo:
kubectl config current-context

Una línea de resultado indica el clúster del contexto activo.

Resultado:

gke_{{{project_0.project_id|Project_ID}}}_{{{project_0.default_region|Region}}}_autopilot-cluster-1

PROJECT_ID es el ID de tu proyecto. Esta información coincide con la de la propiedad current-context del archivo kubeconfig.

  1. En Cloud Shell, ejecuta el siguiente comando para mostrar algunos detalles de todos los contextos del clúster en el archivo kubeconfig:
kubectl config get-contexts

Varias líneas de resultado indican los detalles del clúster que creaste y cuál es el clúster del contexto activo. En general, este comando muestra una lista con algunos detalles de los clústeres presentes en el archivo kubeconfig del usuario, incluidos los demás clústeres que el usuario creó y los que se agregaron manualmente al archivo kubeconfig.

  1. En Cloud Shell, ejecuta el siguiente comando para cambiar el contexto activo:
kubectl config use-context gke_${DEVSHELL_PROJECT_ID}_{{{project_0.default_region|Region}}}_autopilot-cluster-1

En este caso, dado que tienes un solo clúster, el comando no modificará nada.

Sin embargo, es posible que tengas más de un clúster en algún proyecto en el futuro. Puedes usar este enfoque para cambiar el contexto activo cuando tu archivo kubeconfig ya tenga propagadas las credenciales y la configuración de varios clústeres. Este enfoque requiere el nombre completo del clúster, que incluye el prefijo gke, el ID del proyecto, la ubicación y el nombre visible, todos concatenados con guiones bajos.

  1. En Cloud Shell, ejecuta el siguiente comando para habilitar el autocompletado de bash para kubectl:
source <(kubectl completion bash)

Este comando no produce resultados.

  1. En Cloud Shell, escribe kubectl seguido de un espacio y presiona dos veces la tecla Tab.

La shell muestra todos los comandos posibles:

Cloud Shell mostrando todos los comandos de resultado posibles

  1. En Cloud Shell, escribe kubectl co y presiona dos veces la tecla Tab.

La shell muestra todos los comandos que empiezan con "co" (o cualquier texto que escribas).

Cloud Shell mostrando todos los comandos de resultados que comienzan con &quot;co&quot;, como completion, convert, config y cordon

Tarea 4: Implementa Pods en los clústeres de GKE

En esta tarea, usarás Cloud Shell para implementar Pods en clústeres de GKE.

Usa kubectl para implementar Pods en GKE

Kubernetes presenta la abstracción de un Pod para agrupar uno o más contenedores relacionados como una única entidad que se programará y se implementará como una unidad en el mismo nodo. Puedes implementar un Pod que es un único contenedor a partir de una única imagen de contenedor. O bien, un Pod puede contener muchos contenedores de muchas imágenes de contenedor.

  1. En Cloud Shell, ejecuta el siguiente comando para implementar NGINX como un Pod llamado nginx-1:
kubectl create deployment --image nginx nginx-1

Con este comando, se crea un Pod llamado nginx con un contenedor que ejecuta la imagen de NGINX. Cuando no se especifica un repositorio, el comportamiento predeterminado es intentar buscar la imagen, ya sea de forma local o en el registro público de Docker. En este caso, la imagen se extrae del registro público de Docker.

  1. En Cloud Shell, ejecuta el siguiente comando para ver todos los Pods implementados en el clúster del contexto activo:
kubectl get pods

El resultado debería verse como el siguiente ejemplo, pero con un nombre de Pod ligeramente distinto.

Nota: Si ves un mensaje que indica que el servidor no puede controlar la solicitud en este momento, espera a que finalice la implementación y esté lista.

Resultado:

NAME READY STATUS RESTARTS AGE nginx-1-74c7bbdb84-nvwsc 1/1 Running 0 2m52s
  1. En Cloud Shell, ejecuta el siguiente comando para ver el uso de recursos en todos los nodos del clúster:
kubectl top nodes

El resultado debería verse como el siguiente ejemplo.

Resultado:

NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% gk3-autopilot-cluster-1-pool-2-7246ae0e-4q7s 1971m 102% 1803Mi 30%

Otro comando top (kubectl top pods) muestra información similar en todos los Pods implementados en el clúster.

  1. Ahora ingresarás el nombre de tu Pod en una variable que usaremos a lo largo de este lab. Usar variables como esta puede ayudarte a minimizar errores humanos cuando se escriben nombres largos. Debes escribir el nombre único de tu Pod en lugar de [your_pod_name]:
export my_nginx_pod=[your_pod_name]

Ejemplo:

export my_nginx_pod=nginx-1-74c7bbdb84-nvwsc
  1. Confirma que estableciste la variable de entorno correctamente. Para ello, haz que la shell te repita el valor:
echo $my_nginx_pod

Resultado:

nginx-1-74c7bbdb84-nvwsc
  1. En Cloud Shell, ejecuta el siguiente comando para ver todos los detalles del Pod que acabas de crear.
kubectl describe pod $my_nginx_pod

El resultado debería verse como el siguiente ejemplo. Se mostrarán los detalles del Pod junto con su estado, sus condiciones y los eventos de su ciclo de vida.

Resultado:

Image: nginx Image: nginx Image: nginx Image ID: docker.io/library/nginx@sha256:480868e8c8c797794257e2abd88d0f9a8809b2fe956cbfbc05dcc0bca1f7cd43 Port: Host Port: State: Running Started: Wed, 17 May 2023 10:47:04 +0000 Ready: True Restart Count: 0 Limits: cpu: 500m ephemeral-storage: 1Gi memory: 2Gi Requests: cpu: 500m ephemeral-storage: 1Gi memory: 2Gi Environment: Mounts: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-ksxxr (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: kube-api-access-ksxxr: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: DownwardAPI: true QoS Class: Guaranteed Node-Selectors: Tolerations: kubernetes.io/arch=amd64:NoSchedule node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 5m42s gke.io/optimize-utilization-scheduler 0/2 nodes are available: 2 Insufficient cpu, 2 Insufficient memory. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod. Normal Scheduled 4m15s gke.io/optimize-utilization-scheduler Successfully assigned default/nginx-1-6b7bff9fc7-t7fzk to gk3-autopilot-cluster-1-pool-1-242a3a6a-j9rh Normal TriggeredScaleUp 5m34s cluster-autoscaler pod triggered scale-up: [{https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-02-92c260add90a/zones/{{{project_0.default_zone|Zone}}}/instanceGroups/gk3-autopilot-cluster-1-pool-1-242a3a6a-grp 0->1 (max: 1000)}] Normal Pulling 3m30s kubelet Pulling image "nginx" Normal Pulled 3m16s kubelet Successfully pulled image "nginx" in 13.843394735s (13.843643782s including waiting) Normal Created 3m16s kubelet Created container nginx Normal Started 3m15s kubelet Started container nginx

Envía un archivo a un contenedor

Para poder entregar contenido estático a través del servidor web de NGINX, debes crear un archivo y colocarlo en el contenedor.

  1. En Cloud Shell, escribe los siguientes comandos para abrir un archivo llamado test.html en el editor de texto nano.
nano ~/test.html
  1. Agrega el siguiente texto (secuencia de comandos de shell) al archivo test.html vacío:
This is title Hello World
  1. Presiona Ctrl + X y, luego, la tecla Y seguida de Intro para guardar el archivo y salir del editor nano.

  2. En Cloud Shell, ejecuta el siguiente comando para colocar el archivo en la ubicación adecuada dentro del contenedor de NGINX en el Pod correspondiente, que se entregará de manera estática:

kubectl cp ~/test.html $my_nginx_pod:/usr/share/nginx/html/test.html

Con este comando, se copia el archivo test.html del directorio principal local en el directorio /usr/share/nginx/html del primer contenedor en el Pod de nginx. Puedes especificar otros contenedores en un Pod de varios contenedores con la opción -c seguida del nombre del contenedor.

Expón el Pod para realizar pruebas

Se necesita un servicio para exponer un Pod a los clientes externos al clúster. Los servicios se abordan en otras secciones del curso y se usan con frecuencia en otros labs. Puedes usar un comando simple para crear un servicio y exponer un Pod.

  1. En Cloud Shell, ejecuta el siguiente comando para crear un servicio y exponer nuestro Pod de NGINX externamente:
kubectl expose pod $my_nginx_pod --port 80 --type LoadBalancer

Con este comando, se crea un servicio LoadBalancer, que permite que se acceda al Pod de nginx desde direcciones de Internet externas al clúster.

  1. En Cloud Shell, ejecuta el siguiente comando para ver los detalles de los servicios en el clúster:
kubectl get services

El resultado debería verse como el siguiente ejemplo. Usarás la dirección IP externa en el próximo paso.

Nota: Es posible que debas repetir este comando algunas veces para que se propague la IP externa del nuevo servicio.

Resultado:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.11.240.1 443/TCP 1h nginx-1-7...wsc LoadBalancer 10.11.240.87 80:31695/TCP 3s

El servicio Kubernetes es uno de los servicios predeterminados que se crean o utilizan en el clúster. También se muestra el servicio nginx que creaste.

Es posible que debas ejecutar de nuevo este comando varias veces para que se muestre la dirección IP externa.

Resultado:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.11.240.1 443/TCP 1h nginx-1-7...wsc LoadBalancer 10.11.240.87 104.154.177.46 80:31695/TCP 1m

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar Pods en los clústeres de GKE

  1. En Cloud Shell, ejecuta el siguiente comando para verificar que el contenedor de NGINX esté entregando el archivo HTML estático que copiaste.

Reemplaza [EXTERNAL_IP] por la dirección IP externa de tu servicio, la cual obtuviste en el resultado del paso anterior.

curl http://[EXTERNAL_IP]/test.html

El contenido del archivo aparecerá en el resultado. Puedes dirigirte a la misma dirección en tu navegador para comprobar si el archivo se procesa como HTML.

Ejemplo:

curl http://104.154.177.46/test.html This is title Hello World
  1. En Cloud Shell, ejecuta el siguiente comando para ver los recursos que utiliza el Pod de nginx:
kubectl top pods

Resultado:

NAME CPU(cores) MEMORY(bytes) nginx-1-74c7bbdb84-nvwsc 0m 2Mi

Tarea 5: Inspecciona los Pods de GKE

En esta tarea, te conectarás a un Pod para cambiar la configuración, editar archivos y hacer otras modificaciones en el Pod sin desconectarlo.

Nota: Usa este proceso únicamente cuando estés experimentando o solucionando problemas. Dado que los cambios que realices no se implementarán en la imagen de origen del Pod, no estarán presentes en ninguna de las réplicas.

Prepara el entorno

Para implementar Pods y otros recursos en Kubernetes, se prefieren los archivos de configuración, que suelen llamarse archivos de manifiesto. Por lo general, los archivos de configuración se escriben en la sintaxis YAML, y se especifican los detalles del recurso. Te resultará más fácil especificar opciones complejas con estos archivos que si utilizas una línea larga de argumentos de línea de comandos.

La sintaxis YAML es similar a la sintaxis JSON, aunque más concisa, y permite el mismo tipo de estructuración jerárquica de objetos y propiedades. El repositorio de código fuente del lab contiene archivos YAML de ejemplo que se prepararon para ti.

  1. En Cloud Shell, ingresa el siguiente comando para clonar el repositorio en el entorno de Cloud Shell del lab.
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Crea un vínculo simbólico como un acceso directo al directorio de trabajo:
ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
  1. Cambia al directorio que contenga los archivos de muestra de este lab:
cd ~/ak8s/GKE_Shell/

Se proporcionó un archivo YAML del manifiesto de muestra para un Pod llamado new-nginx-pod.yaml:

apiVersion: v1 kind: Pod metadata: name: new-nginx labels: name: new-nginx spec: containers: - name: new-nginx image: nginx ports: - containerPort: 80
  1. Para implementar tu manifiesto, ejecuta el siguiente comando:
kubectl apply -f ./new-nginx-pod.yaml

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar un Pod nuevo con un archivo yaml

  1. Para ver una lista de Pods, ejecuta el siguiente comando:
kubectl get pods

El resultado debería verse como el ejemplo.

Resultado:

NAME READY STATUS RESTARTS AGE new-nginx 1/1 Running 0 9s nginx-1-74c7bbdb84-nvwsc 1/1 Running 0 55m

Puedes ver tu nuevo Pod de NGINX, así como el que creaste anteriormente en el lab.

Utiliza el redireccionamiento de shell para conectarte a un Pod

Algunas imágenes de contenedor incluyen un entorno de shell que puedes iniciar. Es posible que este entorno de shell resulte más conveniente que ejecutar comandos individuales con kubectl. Por ejemplo, la imagen nginx incluye una shell bash. En esta tarea, usarás el redireccionamiento de shell para conectarte a la shell bash de tu nuevo Pod nginx y realizar una secuencia de acciones.

  1. En Cloud Shell, ejecuta el siguiente comando para iniciar una shell de Bash interactiva en el contenedor de NGINX:
kubectl exec -it new-nginx -- /bin/bash

Se mostrará un nuevo prompt de la shell.

Resultado:

root@new-nginx:/#

Iniciaste una shell de Bash interactiva en el contenedor del Pod new-nginx. Si el Pod tiene varios contenedores, podrías especificar uno por su nombre mediante la opción -c.

Dado que la imagen del contenedor nginx no posee herramientas de edición de texto de forma predeterminada, deberás instalar una.

  1. En Cloud Shell, en la shell de Bash de NGINX, ejecuta los siguientes comandos para instalar el editor de texto nano:
apt-get update apt-get install nano

Cuando se te pregunte si deseas continuar "Do you want to continue (Y/n)", presiona Y para confirmar.

Debes crear un archivo test.html en el directorio de entrega estática del contenedor de NGINX.

  1. En Cloud Shell, en la shell de Bash de NGINX, ejecuta los siguientes comandos para cambiar al directorio de archivos estáticos y crear un archivo test.html:
cd /usr/share/nginx/html nano test.html
  1. En Cloud Shell, en la sesión de nano de la shell de Bash de NGINX, escribe el siguiente texto:
This is title Hello World
  1. Presiona Ctrl + X y, luego, la tecla Y seguida de Intro para guardar el archivo y salir del editor nano.
  2. En Cloud Shell, en la shell de Bash de NGINX, ejecuta el siguiente comando para salir:
exit

Para conectarte al contenedor de NGINX modificado y poder probarlo (con el nuevo archivo HTML estático), podrías crear un servicio. Una manera más fácil de hacerlo es usar la redirección de puertos para conectarte al Pod directamente desde Cloud Shell.

  1. En Cloud Shell, ejecuta el siguiente comando para establecer la redirección de puertos de Cloud Shell al Pod de NGINX (desde el puerto 10081 de la VM de Cloud Shell hasta el puerto 80 del contenedor de NGINX):
kubectl port-forward new-nginx 10081:80

El resultado debería verse como el ejemplo.

Resultado:

Forwarding from 127.0.0.1:10081 -> 80 Forwarding from [::1]:10081 -> 80

Este proceso se realiza en primer plano, de modo que tendrás que abrir otra instancia de Cloud Shell para hacer la prueba.

  1. En la barra de menú de Cloud Shell, haz clic en el ícono del signo más (+) para iniciar una nueva sesión de Cloud Shell.

Ícono del signo más (+) destacado en la barra de menú de Cloud Shell

Aparecerá una segunda sesión en tu ventana de Cloud Shell. Puedes alternar entre las sesiones haciendo clic en los títulos en la barra de menú.

  1. En la segunda sesión de Cloud Shell, ejecuta el siguiente comando para probar el contenedor de NGINX modificado mediante la redirección de puertos:
curl http://127.0.0.1:10081/test.html

Se mostrará el texto HTML que colocaste en el archivo test.html.

This is title Hello World

Visualiza los registros de un Pod

  1. En la barra de menú de Cloud Shell, haz clic en el ícono del signo más (+) para iniciar otra sesión de Cloud Shell nueva.

Aparecerá una tercera sesión en tu ventana de Cloud Shell. Como antes, puedes alternar entre las sesiones haciendo clic en ellas en la barra de menú.

  1. En la tercera ventana de Cloud Shell, ejecuta el siguiente comando para mostrar los registros y transmitir los registros nuevos a medida que llegan (y, además, incluir marcas de tiempo) para el Pod new-nginx:
kubectl logs new-nginx -f --timestamps
  1. Verás que los registros se muestran en esta nueva ventana.
  2. Regresa a la segunda ventana de Cloud Shell y ejecuta el comando curl de nuevo para generar algo de tráfico en el Pod.
  3. Revisa los mensajes de registro adicionales a medida que aparecen en la tercera ventana de Cloud Shell.

Tercera ventana de Cloud Shell con mensajes de registro adicionales

  1. Cierra la tercera ventana de Cloud Shell para dejar de mostrar los mensajes de registro.
  2. Cierra la ventana original de Cloud Shell para detener el proceso de redirección de puertos.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.