Kubernetes: Udemy Kubernetes al Completo

  • Otros Orquestadores
  • Historia

Estandares

  • Son dos estandares
  • Espeficiación de la imagen
  • Especificación de Runtime
  • RunC donado por docker
  • Otras herramientas

cncf

Arquitectura Maestro / Control Plane

1. API-SERVER

  • El maestro crear una API-SERVER (permite solicitudes http POST tipo YAML para desplegar componentes)

2. Controller Manager

  • El siguiente componente es el controlller manager
  • Gestiona varias caracteristicas del cluster
  • Tiene varios componentes que estan escuchando y cuando itienen que
    • Node Controller: gestion los nodos (esta vivo se cayó)
    • Replication Controller (hace que las copias esten correctas)
    • Endpoints Controller (ofrece un punto de entrada a un servicio)
    • Service Account & Token Controllers (cuentas, autorización)

3. Scheduler

  • Es el que define donde se despliega cada contenedor dentro del cluster

4. ETCD Almacen Clave Valor

  • Es una base de datos llamada ETCD
  • De tipo clave-valor

5. Kubernetes DNS

  • Es un DNS interno
  • Que esta configurado en todos los nodos
  • Que define todos los dominios

6. Cloud Controller Manager

  • Si el despliegue se da en un servicio de nube
  • Este controlador es el encargado de comunicarse con esos servicios del proveedor

Arquitectura Esclavo / Nodo

1. Container Runtime

  • Es el que ejecuta los contenedores en el nodo
  • puede ser docker / Containerd / Cri io /
  • Pero cualquiera que compatible con Kubernetes CRI

2. POD

  • Es el componente más pequeño
  • Se podría decir que es un contenedor pero pueden ser varios
  • Forman una unidad de trabajo
  • Esto es lo que se despliega

3. Kuberlet (data plane)

  • Es el servicio que se comunica con el maestro
  • escuchando peticiones / estado del nodo / recibiendo y mandando mensajes
  • Es el core de kubernet dentro del nodo

4. Kube-proxy

  • Es un network proxy que permite la conectividad del nodo con todos los componentes del cluster

Tipos de Instalación

  • Hay varias formas
    • Local o un solo nodo
    • Instalación manual a través de alguna herramienta como kubeadm
    • Instalación automatica con herramienta kubespray
    • Gestionados por proveedor AWS o Azure

1. Un solo nodo

2. Instalación Manual

3. Instalación Automática

4. Gestionado por Proveedor

Distribuciones de Kubernetes

  • On -premise
  • Cloud

Playground

kubectl

  • Es una herramienta de tipo comando que nos permite trabajar con cluster de kubernetes
  • No viene con ninguna herramienta hay que instalarla
  • La versión puede afectar si no es compatible con versiones anteriores de kubernetes
  • en esta ruta contramos como instarla
  • https://kubernetes.io/docs/tasks/tools/

Install kubectl en linux

  • con snap
snap install kubectl --classic
kubectl version --client

Install Minikube

  • Es una herramienta que nos permite crear un cluster de kubernetes de un solo nodo
  • Soporta distintos tipos de container Runtimes: rkt, conteinerd, CRI-O
  • Para arrancarlo hay que indicarle el driver

Instalación de docker

  • Ejecutamos
# Actualizar
sudo apt update
sudo apt upgrade -y

# Dependencias
sudo apt install -y ca-certificates curl gnupg lsb-release

# Agregar la clave GPG
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg


# Agregar el repositorio de Docker
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualizar índices de paquetes e instalar Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Verificar que Docker esté funcionando
sudo docker run hello-world

# (Opcional) Permitir ejecutar Docker sin sudo
# NOTA: Salir de root
sudo usermod -aG docker $USER
#NOTA: Cerramos la sesion y volvemos a ingresar

# Verifica la versión de Docker
docker --version

Instalación de Minikube

apt install curl

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb

sudo dpkg -i minikube_latest_amd64.deb

minikube version
  • Para iniciarlo
minikube start --driver=docker 
  • Resultado
  • estado
minikube status