Surge a partir de la complejidad de manejar diversos servidores a la vez con docker ademas de la complejidad de escalar.
Kubernetes es una especie de orquestador que te ayudará a manejar diferentes grupos de contenedores para facilitar el manejo de servicios, principalmente en la nube.
Para poder utilizar kubernetes en nuestra computadora debemos tener instalado kubectl
Una vez que hayas instalado kubectl en tu computadora, ahora debes asegurarte de que lo hayas instalado correctamente, para ello utiliza el siguiente comando:
kubectl version --client=true
Nota: La bandera --client=true
indica que queremos obtener la versión de nuestra computadora en lugar de un servidor externo.
Posteriormente debes habilitar kubernetes en nuestro docker desktop, para ello ve a la parte de configuración y en la sección de kubernetes selecciona enable kubernetes.
Para ver los contextos actuales a los que estan conectados kubernetes, ejecuta el siguiente comando: kubectl config get-contexts
Con namespaces puedes dividir tu cluster de kubernates. Para mostrar los namespaces ejecuta: kubectl get ns
Un pod es un set de contenedores, es decir, que puede tener uno o más contenedores. Regularmente, cada pod contiene un solo contenedor, pero en caso de tener más de un proceso, lo ideal es tener un pod con más de un contenedor.
Para mostrar tus pods en consola, ejecuta: kubectl -n <namespace> get pods
Los manifiestos son archivos (yml) que te permiten escribir configuraciones de kubernetes para crear pods, daemonsets, deployments, entre otras.
Para poder ejecutar nuestros manifiestos, ejecutaremos el siguiente comando: kubectl apply -f <archivo.yml>
En caso de haber creado un pod con nuestro manifiesto, para acceder a ese pod ingresaremos: kubectl exec -it <nombre-pod> -- <comando>
Para ver los detalles de un pod, ejecuta el siguiente comando: kubectl describe <nombre-pod>
Un deployment es un manifiesto que nos ayudará a crear diversos pods de una misma imagen (replicas).
Es una forma de hacer deploy de pods pero en diferentes nodos, no tiene replicas, debido a que cada pod se coloca en cada nodo. Es muy utilizado en servicios de monitoreos.
Es una forma de crear pods, pero con volumen, es decir, con un directorio o disco que estará asociado a ese pod. En caso de apagarse o eliminarse, los datos persistirán en el volumen.
Cada pod posee su propia IP, pero a su vez cada contenedor del pod comparte la IP del pod.
Hay 3 servicios en kubernetes: