b4t2 - Virtualización Flashcards
Qué es un CPD?
Centro de procesamiento de datos: Donde las empresas tienen los servidores, cabinas de almacenamiento, electrónica, etc ..
Cómo se llama al sofware de virtualización?
Hipervisor o VMM (Virtual Machine Monitor)
Qué tipos de virtualización hay?
- Virtualización de máquinas
- Virtualización del amacenamiento (LVM, RAID, SAN, VSAN, NFS, CIFS, …)
- Virtualización del back-up (VTL: Virtual Tape Library)
- Virtualización del puesto de usuario (Infraestructura VDI + Acceso RPD/X-windows)
- Virtualización ligera
Qué diferencia hay entre Hipervisores de Tipo 1 y de Tipo 2?
En el Hiperisor de tipo 1 no es necesario instalar un SO entre el hardware y el hipervisor. Son llamados baremetal.
En el Hipervisor de tipo 2 sí es necesario instalar un SO entre el hardware y el hipervisor. Menos eficiente, más para uso doméstico
Qué es VT-x?
Es la tecnología de virtualización de Intel para sus procesadores que soportan virtualización
Dentro de VT-x hay dos ramas, VT-d y VT-c
Cómo se llama la tecnología de los porocesadores AMD que soportan virtualización?
AMD-v
Productos de Hipervisores de tipo 1 (baremetal)
VMWare ESX
KVM
Hyper-V
XEN
Productos de Hipervisores de tipo 2
VMWare Player
VirtualBox
Parallels (MAC)
Productos de Virtualización del puesto de usuario, del escritorio y de aplicaciones
Escritorio
- WMWare Horizon
- XEN Desktop
Aplicaciones
- Citrix
Qué es la Virtualización Ligera?
Se llama también OS-Virtualization, ya que no se virtualiza el hw, sino el kernel del SO. Habiendo un solo kernel, este se multiplexa para los distintos “clientes” o aplicaciones.
Ya no hay varias máquinas virtuales, cada una con un SO instalado. Ahora se crea una capa Docker Engine sobre un solo SO, sobre la que van los contenedores donde están las aplicaciones.
Esto se usa más para aplicaciones, ya que son más pequeñas, y no tanto para un Oracle, un servidor de correo, un DNS, …
Productos de Virtualización Ligera
Docker
Podman
RKT (Rockit)
Messos
LXC
OpenVZ
En Doker, qué diferencia hay entre Imagen y Contenedor?
Imagen contiene el sowftware
Contenedor es la imagen en ejecución
Cuál es el funcionamiento de Docker?
- Crear un fichero Dockerfile con la configuración de nuestra imagen (ageneralmente a partir de otra). O se puede descargar una imagen con docker pull
- Crear la imagen a partir del fichero Dockerfile con el comando docker build -t < nombre>
- Levantar un contenedor Docker a partir de la imagen construida con docker run -name mysql01 -d < nombre imagen> -p 1443:1443 (puertos)
- Hay que asignarle un volumen al contenedor, para que al cerrarlo no se pierda y todo quede persistido. También se le puede haber asignado un volumen en el fichero docker file
Dónde están la librería de imágenes de Docker que está en la nube?
Docker Hub
Producto para repositar imágenes de Docker
Artifactory Package
Qué son los comandos del Docker file
FROM
RUN
VOLUME
EXPOSE
FROM indica la imagen de origen para crear la nuestra
RUN ejecutar comandos sobre la imgen para personalizarla
VOLUME para tener almacenamiento persistente aunque se elimine el contenedor (filosofía usar y tirar)
EXPOSE para configurar los puertos para los servicios
Imagen muy ligera de Docker de sólo 5 MB
alpine
Qué se usa para distribuir (orquestar) los contenedores cuando hay muchos?
Kubernetes / Docker Swarm
Kubernetes usa el concepto de Pod dentro de cada nodo, que es lo que administra, y en los pods están los contenedores
Qué es Docker Compose?
Herramienta para de cara al desarrollo, poder levantar (hacer run) de los contenedores que tienen los servicios del entorno de desarrollo (por ej. el sql, el nginx, etc…), definiendo de forma declarativa en docker-compose.yml
Qué son productos Cri-O y Containerd?
Son otras implementaciones de runtimes de contenedores que cumplen el api CRI (Container Runtime Interface) para que Kubernetes pueda usarlos también, en lugar de Docker
Que es OCI?
Open Container Initiative: Proyecto de la Linux Foundation para diseñar un estándar abierto para virtualización a nivel de sistema operativo. Tiene varias especificaciones
- OCI Runtime Specification: Define el motor de ejecución de los contenedores
- OCI Image Format: Define el formato de las imágenes. También conocido como OCF Open Container Format
- OCI Distribution Specification: Estandariza la distribución de imágenes
https://www.tutorialworks.com/difference-docker-containerd-runc-crio-oci
Qué es runc?
Es la implementación de OCI para crear y correr contenedores, esto podrá correr sobre el runtime containerd, CRI-O, o el propio runtime de Docker
Indica productos de IaaS
Amazon AWS
RedHat Openstack
Azure (Microsoft)
Google Cloud
Nube Sara (para la Adm. Pública)
Indica los servicios importantes que ofrece Amazon AWS
S3: Simple Storage Service -> Almacenamiento modo objeto (ficheros y http)
EC2: Elastic Compute Cloud -> maquinas virtuales
EBS: Elastick Block Store -> Almacenamiento modo bloque
Indica los servicios importantes que ofrece RedHat Openstack
Swift: Almacenamiento modo objeto
NOVA: máquinas virtuales
Cinder: Almacenamiento modo bloque
Neutron: Recursos de red
Horizon: Cuadro de mandos web
Qué es PaaS. Dos productos importantes
Platform as a service: Ofrece una plataforma para montar a través de una consola web entornos de ejecución (desarrollo, pre, pro…) para todo el cliclo de vida de la aplicación, seleccionando los productos que se quieren (java, php, mysql, …) y lo crea, creando y distribuyendo los contenedores necesarios.
OpenShift (RedHat
Heroku
Cloud Foundry (VMWare)
Engine Yard
Google App Egine
Azure Pipelines
AWS Beanstalk
Digital Ocean
Qué diferencia hay entre PaaS e IaaS?
IaaS son servicios de infraestructura en la nube, como maquinas virtuales, almacenamiento, recursos de red, etc…
PaaS son entornos de ejecución para desarrollo, pre, pro… etc.. que se personalizan desde una consola web gráfica
En la virtualización de máquinas clásica, qué es VMDK?
Y VHD? Y VDI?
Virtual Machine Disk: formato de los ficheros donde se almacenan los datos de las máqunias virtuales, son como los discos duros pero virtualizados.
Este formato inicialmente era de VMWare, pero ahora otros fabricantes usan ese mismo formato.
VHD es Virtual Hard Disk, que es similar pero solo de Hyper-V
VDI es una imagen de VirtualBox
En la virtualización de máquinas clásica, qué es OVF u OVA?
Open Virtual Format / Open Virtual Apliance
Es el formato estándar del software que se puede ejecutar en una máquina virtual. No está asociado a ningún hipervisor concreto.
Es como el equivalente en contenedores al formato abierto de imagen
OVF es el formato y OVA es el empaquetado
Probar los comandos docker en el pc
Qué hacen los siguientes comandos Docker?
docker images
docker image ls
docker ps
docker build
docker run -dit 8080:80
docker exec
docker volume ls/create/inspect/rm/prune
docker start
docker stop
docker kill
docker commit
docker images -> listar las imágenes creadas en la máquina
docker image ls -> listar las imágenes crear en la máquina, igual que el anterior
docker ps -> listar los contenedores levantados
docker build -> construir imagen a partir de su docker file
docker run -dit -> arrancar contenedor. -d (en background) i (interactivo), y el puerto físico 8080 relacionado con el puerto del contenedor 80
docker exec -> ejecutar un comando contra un contenedor activo
docker volume ls/create/inspect/rm/prune -> listar los volúmenes/crear/ver detalles/borrar/borrar todos los volúmenes sin usar
docker start -> arrancar un contenedor parado
docker stop -> parar un contenedor
docker kill -> para un contenedor por la fuerza, sin darle tiempo a shutdown como sop
docker commit -> hacer una imagen de un contenedor ya tuneado a posteriori
Qué son las siguientes palabras del docker file?
FROM
ENV
ARG
WORKDIR
USER
COPY
ADD
RUN
CMD
ENTRY POINT
EXPOSE
VOLUME
FROM -> Imagen base
ENV -> configurar variables de entorno para el proceso de build, se queda configurada en el contenedor
ARG -> crear una variable para el proceso build, similar al anterior, pero en el contenedor no se queda
WORKDIR -> establece el directorio de trabajo
USER -> Con qué usuario ejecutamos las instrucciones en el contenedor
COPY -> Para añadir ficheros y directorios a la imagen
ADD -> Para añadir ficheros y directorios a la imagen, como el anterior
RUN -> Ejecutar comandos durante el build de la imagen
CMD -> comandos a ejecutar cuando se levante el contenedor
ENTRY POINT -> similar al anterior
EXPOSE -> exponer puertos en el contenedor
VOLUME -> definir el directorio (el volume) donde se persistirá la información
Qué son las apis OCI y CRI y quién las implementa?
The Open Container Initiative (OCI) which publishes specifications for containers and their images. La implementa runc
The Kubernetes Container Runtime Interface (CRI), which defines an API between Kubernetes and a container runtime underneath. La implementa CRI-O, containerd