Apuntes de los cursos y practicas de Kubernetes e IaC
Explore the docs
·
Report Bug
·
Request Feature
Solución de orquestación Open Source de contenedores de Google. Permite manejar aplicaciones dentro de contenedores a traves de varios servidores (físicos o virtuales).
Funcionalidades:
- Manejar muchos contenedores
- Alta disponibilidad
- Cero downtime (mediante replicas de la aplicación en diferentes nodos)
- Escalar aplicación (para absorver mas tráfico)
- Disaster recovery (ya que se basa en manifiestos declarativos)
Arquitectura:
- Hay dos componentes, el Master y los Workers.
- Los workers corren un agente llamado kubelet.
- El Master tiene varios servicios:
- API SERVER: que los clientes interacciónen con el cluster (mediante WEB, API o comandos kubectl)
- Controller Manager: responsable de lo que pasa en el cluster. Revisa los contenedores que estan corriendo frente a los contenedores que deberian estar corriendo.
- Scheduler: recibe ordenes del Controller Manager responsable de mover pods entre Workers
- etcd: base de datos del estado y configuraciones.
Pods:
- Set de contenedores con una sola IP (comparten el namespace de red).
- Son volatiles: cuando actualizas el aplicativo se destruye el antiguo y crea uno nuevo. Por ello no hay que llamar a la IP del pod, hay que llamar a la IP del servicio.
- Overlay network: red de comunicacion entre pods de diferentes workers (para trabajar juntos)
Servicios:
- Tipos:
- Cluster IP: el mas común, es una IP fija (para comunicarnos con un pod o comunicar pods entre sí). El servicio encuentra los pods gracias a etiquetas.
- Load Balancer: balanceador de cargar cloud.
- Ingress: reglas basadas en el subdominio.
- Node Port: crea un puerto en la APP para llegar a él.
Manifiestos:
- Un manifiesto contiene un template de la aplicación. Tambien llamados deployement. Un deployement en un template para crear pods.
- Cuando se aplica el template, el Controller Manager se encarga de crear los pods en el cluster.
Email: sergio.alegre.arribas EN gmail.com
LinkedIn: https://www.linkedin.com/in/sergioalegre
My certificates: http://certificates.sergioalegre.es
Website: http://me.sergioalegre.es
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.