B4T2 Virtualización Flashcards
Virtualización
Crear mediante una capa de abstracción (software) para una serie de recursos la posibilidad de multiplexarlo entre varios clientes
Ventajas virtualización
Optimización del uso del HW
Aislamiento entre máquinas virtuales
Mejor aprovisionamiento y administración del entorno
IaaS
Infrastructure as a Services
- Amazon AWS (S3, EC2, EBS,..)
- RedHat Openstack (NOVA, Swift, Cinder, Neutron, Horizon,..)
- Azure
- Google Cloud
- NubeSARA
PaaS
Platform as a Service
- Open Shift: entornos de ejecución para los distintos equipos de desarrollo. Se apoya en docker y kubernetes
- Heroku (solo en modo nube)
SaaS
Services as a Service
Ofrece aplicaciones a los usuarios finales a través de un navegador de internet
Orden de configurabilidad de plataformas de mayor a menor
On-Premises -> IaaS -> CaaS -> PaaS -> FaaS -> SaaS
Tipos virtualización
Virtualización de máquinas
Virtualización del almacenamiento
Virtualización del backup
Virtualización del puerto de usuario
Virtualización de máquinas
Hipervisor tipo 1: sobre el hardware. KVM | Hyper-V | Xen | VMware ESX
Hipervisor tipo 2 : sobre el software. VMware Player | Virtual Box | Pararells (MAC)
Virtualización del almacenamiento
Nivel Bloque: Servidor (LVM), Dispositivo (RAID), Red (vSAN)
Virtualización del puesto de usuario
Escritorio: VMware Horizon, Xen Desktop
Aplicaciones: Citrix XenApp
Infraestructura VDI (Virtual Desktop Infrasctructure)
Formatos de archivos de disco
VHD: Hyper-V
Vmdk: VMware y VirtualBox
OVF, OVA: Formato virtualización abierta
VDI: imagen de disco -> virtual box
Virtualización ligera
Se virtualiza el sistema operativo (kernel) -> Contenedores o EV
Contenedores conocidos
Docker
RKT
Singularity
OpenVZ
Podman
Funcionamiento con Docker
- Crear un fichero Dockerfile con la configuración de nuestra imagen
- A partir de esta general la imagen en disco
docker build -t etiqueta - Levantar un contenedor en memoria a partir de la imagen construida
docker run -name mssql01 -d etiqueta -p 1433:1433
Para gestionar varios contenedores a la vez (en local)
docker-compose.yml
levanta todos los contenedores a la vez
Gestión de contenedores (en producción)
Muchos contenedores y nodos para distribuirlos
Kubernetes:
- Distribución de contenedores (entre los distintos nodos)
- Balanceo de carga
- Monitorización
docker info
Info general
docker pull/push
Descargar/subir una imagen de/a hub.docker.com
docker ps
Listado de contenedores activos
-a: todos los contenedores
docker run
Arrancar nuevo contenedor
docker start/stop
Arrancar contenedor parado
docker create NombreImagen
Crea un contenedor pero no lo arranca
docker build
Crea una imagen a partir de un fichero dockerfile
docker images
images = image list = image ls
docker rm
Borrar contenedor
docker rmi
Borrar imagen
docker exec
Ejecutar una orden contra el contenedor (desde fuera)
-it bash -> entras como root
docker attach
Unirse a la salida estándar del proceso corriendo en un contenedor
docker export
Backup de ficheros
docker commit
Crea una imagen nueva a partir de un contenedor modificado en local
Instrucciones docker
FROM: especificar imagen base
RUN <comand>: ejecutar los distintos comandos para crear imagen (apt install,..)
EXPOSE <puerto>: especifica el puerto
VOLUME <carpeta>: indica una carpeta para datos persistentes aunque se tire el contenedor
CMD <comando>: ejecuta el comando cuando se inicie el contenedor</comando></carpeta></puerto></comand>
pod
Grupo de 1 o más contenedores. Son la unidad más pequeña desplegable que puede ser creada y manejada por Kubernetes.
Un pod tiene IP propia
kubectl
Manejar cluster de contenedores sobre una infraestructura de nodos distribuida
Objetos de kubernetes
Pod, Service, Volume, Namespace
Controladores de kubernetes
ReplicaSet
Deployment
StatefulSet
DaemonSet
Job
Registros de contenedores
-Públicos: Docker Hub
-Privados: ·Nexus
·Cloud (Google Container, Azure Container, AWS Elastic Container)