Contenedores SO
Contenedores SO
Contenedores SO
Docker.?
Sistemas Operativos.
INTRODUCCIÓN
Fuente: Kubernetes.io
KUBERNETES
Máquinas Virtuales
Arquitectura
Máquinas Virtuales Contenedores
Qué es
Docker?
• Implementación open-source de Linux Containers
• Es la implementación #1
• Repositorio de imágenes públicas: docker hub
Cuales son las
ventajas?
• No necesita Hypervisor
• Uso eficiente de recursos (CPU, Memoria)
• Menor consumo de disco (mucho menor)
• Levantan muy rápido (milisegundos)
• Ideales para Microservicios y DevOps
• Fácilmente automatizables
• Son muy fáciles de transportar y recrear (text file)
• Permiten tratar a la infraestructura como código
Cómo
funciona?
Docker Hub
push pull
App
build run Container
Image App
Dockerfile
Container
App
sw
Container
lib/deps
config
app bins
Llevándolo a la
práctica…
Docker
A crear Contenedores...
Orquestando
Docker
Contenedores
• Agrupamiento lógico (aplicación)
• Clustering de servidores
• Deploy automático
• Balanceo de carga
• Escalamiento automático
• Self-healing
• Rollouts y rollback
• Run Anywhere
Docker
Un Pod (como en una vaina de ballenas o vaina de guisantes) es un grupo de uno o más contenedores
(como contenedores Docker), con almacenamiento/red compartidos, y unas especificaciones de cómo
ejecutar los contenedores. Los contenidos de un Pod son siempre coubicados, coprogramados y
ejecutados en un contexto compartido.
Fuente: Kubernetes.io
ARQUITECTURA DE PODS
-IPC
-Network
-UTS
Fuente: Kubernetes.io
DEPLOYMEN
T
La implementación indica a Kubernetes cómo crear
y actualizar instancias de su aplicación. Una vez
que haya creado una implementación, el plano de
control de Kubernetes programa las instancias de la
aplicación incluidas en esa implementación para
que se ejecuten en nodos individuales del clúster.
Objeto de la API de Kubernetes que describe cómo se accede a las aplicaciones, tal como un conjunto
de Pods, y que puede describir puertos y balanceadores de carga.
Con Kubernetes no necesitas modificar tu aplicación para que utilice un mecanismo de
descubrimiento de servicios desconocido. Kubernetes le otorga a sus Pods su propia dirección IP y un
nombre DNS para un conjunto de Pods, y puede balancear la carga entre ellos.
UTILIDAD DE KUBERNETES EN
MI PROYECTO
Para la realización del ejercicio práctico, deberá tener instaladas las siguientes
herramientas:
1. VirtualBox. ->
https://www.virtualbox.org/wiki/Downloads
2. Kubectl. ->
https://kubernetes.io/docs/tasks/tools/
3. Minikube -> https://minikube.sigs.k8s.io/docs/start/
Exploración de Kubernetes
en Entornos de Desarrollo:
Configuración con
Minikube en Linux y Uso
de Nodos
¿Cuál es la diferencia entre Kubernetes y Docker?
1. KUBECTL
2. SECRET
3. JOB
4. INGRESS
5. COMANDO KUBETCTL RUN NGINX – IMAGE=NGINX
6. CONCLUSIÓN
¿QUE ES KUBECTL?.
• Distribución de contenedores
• Balanceo de carga
• Fácil gestión de servicios y aplicaciones
• Escalabilidad
• Alta disponibilidad
• Monitorización de contenedores
• Despliegue y retrocesos automáticos
• Muy modular, mucha flexibilidad
Kubernetes
• Introducción
• Arquitectura
• Instalación
• Ejemplo en Kubernetes
• Workloads
• Arquitectura
• Arquitectura
• Conceptos
MASTER ESCLAVOS
SCHEDULER KUBE-PROXY
KUBE-CONTROLLER PODSDOCKER
KUBE-APISERVER cADVISOR
ETCD KUBELET
• Arquitectura
• COMPONENTES DE LOS NODOS
o Docker o rkt:
o Kubelet:
o Kubernetes-proxy:
Kubernetes
• Introducción
• Arquitectura
• Instalación
• Ejemplo en Kubernetes
• Workloads
• Instalación
• Varias Plataformas
• https://kubernetes.io/docs/setup/pick-right-solution/
• Minikube https://kubernetes.io/docs/setup/minikube/
• Microk8s
• https://kubernetes.io/docs/setup/independent/install-
kubeadm/
• Instalación
• Pasos
curl -s
https://packages.cloud.google.com/apt/do
c/apt-key.gpg | sudo apt-key add
• Instalación
• Pasos
>sudo swapoff -a
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
• Instalación
7. Implementar una red pod:
El siguiente paso es desplegar una red de pod. La red de pod se usa
para la comunicación entre nodos dentro del clúster Kubernetes.
Para ello utilizaremos la red de pod de Flannel:
kubectl apply -f
https://raw.githubusercontent.com/coreos/flannel/master
/Documentation/kube-flannel.yml
• Instalación
• https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/
#_v1_podspec
• Desplegando un servicio en un cluster Kubernetes
spec:
containers:
– name: front-end
image: nginx
ports:
– containerPort: 80
– name: rss-reader
image: nickchase/rss-php-
nginx:v1
ports:
– containerPort: 88
• https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/
#_v1_container
• Desplegando un servicio en un cluster Kubernetes
• https://kubernetes.io/docs/reference/kubectl/overview/
• https://kubernetes.io/docs/reference/generated/kubectl/kubec
tl-commands
Kubernetes
• Introducción
• Arquitectura
• Instalación
• Ejemplo en Kubernetes
• Workloads
• Controladores
• Permiten dentro de un cluster, Vigilar, Desplegar y Mantener
Recursos
• Tipos
o Replication Controllers y Replication Sets
o Deployments
o StatefulSets
o DaemonSets
o Jobs y Cron Jobs
• Controladores
Replication Controllers y Replication Sets
• Replication Controller
• Define una plantilla de Pod
• Responsable de garantizar que la cantidad de pods
implementados en el clúster coincida con la cantidad de
pods en su configuración
• Replica Sets
• Replication Controller de próxima generación.
• Controladores
• Deployments
• Proporciona actualizaciones declarativas para Pods y
ReplicaSets.
• Jobs.
o Crean uno o más pods y asegura que un número
específico de ellos termine con éxito
• CronJobs
• Proporcionan una interfaz para ejecutar trabajos con un
componente de planificación
• Pods y configuración
• Pods
Mondal, S. K., Pan, R., Kabir, H. D., Tian, T., & Dai, H. N. (2022). Kubernetes in IT administration and serverless computing: An
empirical study and research challenges. The Journal of Supercomputing, 1-51. Recuperado de:
https://dl.acm.org/doi/abs/10.1145/3539606
Burns, B., Beda, J., Hightower, K., & Evenson, L. (2022). Kubernetes: up and running. " O'Reilly Media, Inc.". Recuperado de:
https://books.google.es/books?hl=es&lr=&id=KeB-EAAAQBAJ&oi=fnd&pg=PT17&dq=Kubernetes&ots=V9VSKRojWa&sig=8Ziviy
I2DHwhUwdLzImMzqFUp-o#v=onepage&q=Kubernetes&f=false