arrow_back

Cómo configurar un clúster de Kubernetes privado

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

Cómo configurar un clúster de Kubernetes privado

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

GSP178

Labs de autoaprendizaje de Google Cloud

Descripción general

En Kubernetes Engine, un clúster privado es un clúster que hace que tu instancia principal sea inaccesible desde la Internet pública. En un clúster privado, los nodos no tienen direcciones IP públicas, solo direcciones privadas, por lo que tus cargas de trabajo se ejecutan en un entorno aislado. Los nodos y las instancias principales se comunican entre sí intercambiando tráfico de VPC.

En la API de Kubernetes Engine, los rangos de direcciones se expresan como bloques de enrutamiento entre dominios sin clases (CIDR).

En este lab, aprenderás a crear un clúster de Kubernetes privado.

Actividades

  • Crear un clúster de Kubernetes privado

Requisitos previos

  • El estudiante ya debe tener experiencia en la creación y el inicio de clústeres de Kubernetes, y debe dominar el direccionamiento IP en formatos de rango CIDR.

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1. Configura la región y la zona

  1. Establece la región del proyecto para este lab:
gcloud config set compute/zone {{{project_0.default_zone | "Zone"}}}
  1. Crea una variable para la región:
export REGION={{{project_0.default_region | Region}}}
  1. Crea una variable para la zona:
export ZONE={{{project_0.default_zone | Zone}}}

Obtén más información en la documentación Regiones y zonas.

Nota: Cuando ejecutas gcloud en tu máquina, se mantiene la configuración en las diferentes sesiones. En cambio, en Cloud Shell, es necesario configurar esto en cada nueva sesión o reconexión.

Tarea 2. Crea un clúster privado

  1. Cuando creas un clúster privado, debes especificar un rango CIDR de /28 para las VMs que ejecutan los componentes principales de Kubernetes y debes habilitar los alias de IP.

A continuación, crearás un clúster llamado private-cluster y especificarás un rango CIDR de 172.16.0.16/28 para las instancias principales. Cuando habilitas los alias de IP, permites que Kubernetes Engine cree automáticamente una subred.

Crearás el clúster privado con las marcas --private-cluster, --master-ipv4-cidr y --enable-ip-alias.

  1. Ejecuta lo siguiente para crear el clúster:
gcloud beta container clusters create private-cluster \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.16/28 \ --enable-ip-alias \ --create-subnetwork ""

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si creaste correctamente un clúster privado, verás una puntuación de evaluación.

Crear un clúster privado

Tarea 3. Visualiza la subred y los rangos de direcciones secundarios

  1. Genera una lista de las subredes en la red predeterminada:
gcloud compute networks subnets list --network default
  1. En el resultado, busca el nombre de la subred que se creó automáticamente para tu clúster. Por ejemplo, gke-private-cluster-subnet-xxxxxxxx. Guarda el nombre del clúster, ya que lo usarás en el siguiente paso.

  2. Ahora obtén información sobre la subred que se creó automáticamente y ejecuta lo siguiente para reemplazar [SUBNET_NAME] por tu subred:

gcloud compute networks subnets describe [SUBNET_NAME] --region=$REGION

El resultado te muestra el rango de direcciones principal con el nombre de tu clúster privado de GKE y los rangos secundarios:

... ipCidrRange: 10.0.0.0/22 kind: compute#subnetwork name: gke-private-cluster-subnet-163e3c97 ... privateIpGoogleAccess: true ... secondaryIpRanges: - ipCidrRange: 10.40.0.0/14 rangeName: gke-private-cluster-pods-163e3c97 - ipCidrRange: 10.0.16.0/20 rangeName: gke-private-cluster-services-163e3c97 ...

En el resultado, puedes ver que un rango secundario es para Pods y el otro rango secundario, para Services.

Puedes ver que privateIPGoogleAccess se establece en true. Esto permite que los hosts de tu clúster, que solo tienen direcciones IP privadas, se comuniquen con las APIs y los servicios de Google.

Tarea 4. Habilita redes autorizadas principales

En este punto, las únicas direcciones IP que tienen acceso a la instancia principal son las que se encuentran en estos rangos:

  • El rango principal de tu subred. Este es el rango que se usa para los nodos.
  • El rango secundario de tu subred que se usa para Pods.

Para proporcionar acceso adicional a la instancia principal, debes autorizar los rangos de direcciones seleccionados.

Crea una instancia de VM

  1. Crea una instancia de origen que usarás para comprobar la conectividad a los clústeres de Kubernetes:
gcloud compute instances create source-instance --zone=$ZONE --scopes 'https://www.googleapis.com/auth/cloud-platform'

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si creaste correctamente la instancia de VM, verás una puntuación de evaluación.

Crear una instancia de VM
  1. Obtén <External_IP> de la source-instance con lo siguiente:
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP

Resultado de ejemplo:

natIP: 35.192.107.237
  1. Copia la dirección <nat_IP> y guárdala para usarla en pasos posteriores.

  2. Ejecuta lo siguiente para autorizar tu rango de direcciones externas y reemplaza [MY_EXTERNAL_RANGE] por el rango CIDR de las direcciones externas del resultado anterior (tu rango CIDR es natIP/32). Con el rango CIDR natIP/32, estamos incluyendo en la lista de entidades permitidas una dirección IP específica:

gcloud container clusters update private-cluster \ --enable-master-authorized-networks \ --master-authorized-networks [MY_EXTERNAL_RANGE] Nota: En un entorno de producción, reemplaza [MY_EXTERNAL_RANGE] por el rango CIDR de tu dirección externa de red.

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si autorizaste correctamente el rango de direcciones externas, verás una puntuación de evaluación.

Autorizar tu rango de direcciones externas

Ahora que puedes acceder a la instancia principal desde un rango de direcciones externas, instalarás kubectl para usarlo y obtener información sobre tu clúster. Por ejemplo, puedes usar kubectl para verificar que sus nodos no tengan direcciones IP externas.

  1. Establece una conexión SSH a source-instance con lo siguiente:
gcloud compute ssh source-instance --zone=$ZONE
  1. Presiona Y para continuar. Presiona Intro en las preguntas de la frase de contraseña.

  2. En la shell SSH, instala el componente kubectl de Cloud-SDK:

sudo apt-get install kubectl
  1. Configura el acceso al clúster de Kubernetes desde la shell SSH con el siguiente comando:
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin gcloud container clusters get-credentials private-cluster --zone=$ZONE Nota: Asegúrate de que la zona asignada se haya exportado en la variable ZONE.
  1. Verifica que los nodos de tu clúster no tengan direcciones IP externas:
kubectl get nodes --output yaml | grep -A4 addresses

El resultado indica que los nodos tienen direcciones IP internas, pero no tienen direcciones externas:

... addresses: - address: 10.0.0.4 type: InternalIP - address: "" type: ExternalIP ...
  1. Este es otro comando que puedes usar para verificar que tus nodos no tengan direcciones IP externas:
kubectl get nodes --output wide

El resultado muestra una columna vacía para EXTERNAL-IP:

STATUS ... VERSION EXTERNAL-IP OS-IMAGE ... Ready v1.8.7-gke.1 Container-Optimized OS from Google Ready v1.8.7-gke.1 Container-Optimized OS from Google Ready v1.8.7-gke.1 Container-Optimized OS from Google
  1. Ingresa lo siguiente para cerrar la shell SSH:
exit

Tarea 5. Realiza una limpieza

  1. Borra el clúster de Kubernetes:
gcloud container clusters delete private-cluster --zone=$ZONE
  1. Presiona Y para continuar.

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si borraste correctamente el clúster de Kubernetes, verás una puntuación de evaluación.

Borrar el clúster de Kubernetes

Tarea 6. Crea un clúster privado que use una subred personalizada

En la sección anterior, Kubernetes Engine creó automáticamente una subred. En esta sección, crearás tu propia subred personalizada y, luego, un clúster privado. Tu subred tiene un rango de direcciones principal y dos rangos de direcciones secundarios.

  1. Crea una subred y rangos secundarios:
gcloud compute networks subnets create my-subnet \ --network default \ --range 10.0.4.0/22 \ --enable-private-ip-google-access \ --region=$REGION \ --secondary-range my-svc-range=10.0.32.0/20,my-pod-range=10.4.0.0/14

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si creaste correctamente la subred y los rangos secundarios en la región , verás una puntuación de evaluación.

Crear una subred y rangos secundarios en la región
  1. Crea un clúster privado que use tu subred:
gcloud beta container clusters create private-cluster2 \ --enable-private-nodes \ --enable-ip-alias \ --master-ipv4-cidr 172.16.0.32/28 \ --subnetwork my-subnet \ --services-secondary-range-name my-svc-range \ --cluster-secondary-range-name my-pod-range \ --zone=$ZONE

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si creaste correctamente el clúster privado que usa tu subred, verás una puntuación de evaluación.

Crear un clúster privado que use tu subred
  1. Recupera el rango de direcciones externas de la instancia fuente:
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP

Resultado de ejemplo:

natIP: 35.222.210.67
  1. Copia la dirección <nat_IP> y guárdala para usarla en pasos posteriores.

  2. Ejecuta lo siguiente para autorizar tu rango de direcciones externas y reemplaza [MY_EXTERNAL_RANGE] por el rango CIDR de las direcciones externas del resultado anterior (tu rango CIDR es natIP/32). Con el rango CIDR natIP/32, estamos incluyendo en la lista de entidades permitidas una dirección IP específica:

gcloud container clusters update private-cluster2 \ --enable-master-authorized-networks \ --zone=$ZONE \ --master-authorized-networks [MY_EXTERNAL_RANGE]

Prueba la tarea completada

Haz clic en Revisar mi progreso (Check my progress) para verificar la tarea realizada. Si autorizaste correctamente tu rango de direcciones externas para un clúster privado en una subred personalizada, verás una puntuación de evaluación.

Autorizar tu rango de direcciones externas para el clúster privado en la subred personalizada
  1. Establece una conexión SSH a source-instance con lo siguiente:
gcloud compute ssh source-instance --zone=$ZONE
  1. Configura el acceso al clúster de Kubernetes desde la shell SSH con el siguiente comando:
gcloud container clusters get-credentials private-cluster2 --zone=$ZONE Nota: Asegúrate de que la zona asignada se haya exportado en la variable ZONE.
  1. Verifica que los nodos de tu clúster no tengan direcciones IP externas:
kubectl get nodes --output yaml | grep -A4 addresses

El resultado indica que los nodos tienen direcciones IP internas, pero no tienen direcciones externas:

... addresses: - address: 10.0.4.3 type: InternalIP ...

En este punto, las únicas direcciones IP que tienen acceso a la instancia principal son las que se encuentran en estos rangos:

  • El rango principal de tu subred. Este es el rango que se usa para los nodos. En este ejemplo, el rango para los nodos es 10.0.4.0/22.
  • El rango secundario de tu subred que se usa para Pods. En este ejemplo, el rango para Pods es 10.4.0.0/14.

¡Felicitaciones!

Completaste este lab práctico para crear un clúster de Kubernetes privado.

Finaliza tu Quest

Este lab de autoaprendizaje forma parte de la Quest Security & Identity Fundamentals. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en esta Quest o en cualquiera que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo para ver todas las Quests disponibles.

Realiza tu próximo lab

Continúa tu Quest con Securing Google Cloud with CFT Scorecard o revisa estos labs:

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 20 de septiembre de 2023

Prueba más reciente del lab: 20 de septiembre de 2023

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