- Otros Orquestadores

- Historia

- Página oficial
- https://kubernetes.io/
- Ver versiones

Estandares
- Pagina
- https://opencontainers.org/


- Son dos estandares

- Espeficiación de la imagen

- Especificación de Runtime

- RunC donado por docker

- Otras herramientas

cncf
- Organización que busca ordenar todos los proyectos
- pagina
- https://www.cncf.io/


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
- Son paginas que permiten montar un cluster para poder hacer pruebas
- https://killercoda.com/playgrounds


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
- https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download
- Seleccionamos la opción que deseamos instalar
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
