A continuación notas que compartí con los estudiantes en el transcurso del evento, están divididos por cada laboratorio que trabajamos.
- Crear VM instance
- Console / searchs / VM
ver el codigo al crear la instancia
# Codigo para lanzar la isntancia con el comando de gcloud
gcloud compute instances create VM_NAME \
--image-project=debian-cloud \
--image-family=debian-10 \
--metadata=startup-script='#! /bin/bash
apt update
apt -y install apache2
cat <<EOF > /var/www/html/index.html
<html><body><p>Linux startup script added directly.</p></body></html>
EOF'
Verificar la version de linux para que los comandos de
apt-get
que se van a ejecutar despues funcionen correctamente
- Habilitar HTTP
- Network / firewall
# Revisar el estado de los servicios que tenemos levantados
cat /etc/services
grep -w '80/tcp' /etc/services
grep -w '443/tcp' /etc/services
grep -E -w '22/(tcp|udp)' /etc/services
- conectarse por
ssh
a la instancia ( dentro de la misma consola de google cloud)
#!/bin/bash
apt-get update
apt-get install -y apache2
# Verificar que el apache esta instalado
dpkg -l | grep apache
# un curl de prueba para ver nuestra ip publica
curl ipv4.icanhazip.com
- Validar que existe el cluster
- Validar que existe el bucket y el objeto
- abrir consola google shell
- Traer el config para acceder al cluster
# Traer las credenciales del cluster a la terminal
gcloud container clusters get-credentials echo-cluster --zone=europe-west4-a
- Verificar donde esta el config
cd /home/student_00_eb454a988c14/.kube
ls
more config
verificar al version de kubectl
kubectl version
- ver el estado del cluster
kubectl get nodes -o wide
kubectl get pods
kubectl get deployment
kubectl get pods -n kube-system
- Crear deployment
# Verificar que deployment tengo
kubectl get deployment
# Editar deployment
kubectl edit deployment/echo-web
- (Anexo) Cambiar el editor desde la terminal / abrir el editor web
printenv | grep KUBE_EDITOR
export KUBE_EDITOR=nano
- Terminar deploy y exponer puerto:
kubectl create deployment echo-web --image=gcr.io/qwiklabs-resources/echo-app:v1
kubectl expose deployment echo-web --type=LoadBalancer --port 80 --target-port 8000
- Verificar que el puerto funcione
- Ir a: cluster, workload, Exposing services
- Verificar Versión de
docker
docker --version
- descargar archivo de google
gs
gcloud storage cp gs://qwiklabs-gcp-03-914dea928a54/echo-web-v2.tar.gz .
- verificar versión de
tar
tar --version
- descomprimir archivo
tar -xf echo-web-v2.tar.gz
- verificar archivos que de descomprimieron
cd echo-web-v2
ls
# Dockerfile main.go manifests README.md
- Crear imagen docker verificar imagen y subir imagen
# El punto "." al final de la primera linea indica el directorio actual
# Suponemos que estamos parados dentro del directorio echo-web-v2
docker build -t gcr.io/{my-project-id}/echo-app:v2 .
# Verificar que la imagen se creo correctamente
docker images
# Autenticarse en el registry de google
gcloud auth configure-docker
# Subir la imagen
docker push gcr.io/{my-project-id}/quickstart-image
kubectl create deployment echo-web-v2 --image=gcr.io/qwiklabs-gcp-00-1ab0d71a448a/echo-app:v2
- Editando el deployment
- Usando
kubectl
kubectl scale deployment echo-web --replicas=2
- Verificar que esta ejecutándose la version 2
- Crear buckets
# Los podemos crear también desde la terminal
gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
- Una ves creado:
# Copiar un objeto de google Storage con la terminal:
gcloud storage cp gs://qwiklabs-gcp-03-eb542aca2b0f/resources-install-web.sh .
Dentro del wizard de creación de la instancia ir a:
- Avanzado
- Management
- Labels
- startup-script-url
- Pegar url del bucket de
gs://
- Pegar url del bucket de
- startup-script-url
- Labels
- Management
Revisar el código que crea la instancia en la barra lateral derecha
- Ir a la instancia creada
- Modificar
- Agregar http como regla de entrada / solo http
Revisar la configuración de network de la instancia
- Ver la ip publica que crea para el laboratorio
- https://kubernetes.io/docs/home/
- https://kubernetes.io/docs/concepts/overview/components/
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
- https://cloud.google.com/container-registry/docs/advanced-authentication?hl=es-419#gcloud-helper
- https://cloud.google.com/kubernetes-engine/docs/how-to/scaling-apps?hl=es-419#:~:text=To%20use%20kubectl%20scale%20%2C%20you,See%20more%20code%20actions.
- kubectl: The Essential Kubectl Commands: Handy Cheat Sheet
- Startup Script : https://cloud.google.com/compute/docs/instances/startup-scripts/linux?hl=es-419
Conceptos que usamos o estudiamos en los laboratorios:
-
Modelo OSI de referencia o modelo TCP/IP
-
Distribuciones Linux:
-
Arquitectura Kubernetes: