10 formas de trabajar con contenedores en OpenStack

Alberto Molina Coballes y José Domingo Muñoz Rodríguez

Theme by: reveal.js

Hypervisor LXC

  • LXC: Contenedores de sistemas, no de aplicación
  • Usar LXC como hipervisor
  • El proyecto de usar Docker a través de nova (nova-docker) se ha abandonado
  • Podemos crear muchos más contenedores que MV
  • La creación de los contenedores es mucho más rápida
  • Podemos dos zonas de disponibilidad Una con KVM y otra con LXC
  • Opciones de nova limitadas: Feature Support Matrix
  • Necesitamos imágenes para LXC
  • No podemos ejecutar otros sistemas operativos

KubeAdm y MiniKube

No están diseñado específicamente para Openstack. Delegan entornos de pruebas para probar k8s. No ofrecen soluciones para integrarse con OpenStack.

KubeAdm(Ubuntu 16.04 y CentOS 7) monta un cluster K8S de forma sencilla en máquinas físicas, virtuales o instancias. Actualmente su desarrollo está en fase alpha. MiniKube(Linux/OSX): Monta un cluster K8S en un nodo, una máquina virtual (VirtualBox, KVM, VmWare,...). Monta un entorno de prueba local. No posee algunas funciones de K8S (Balanceador,Volúmenes,...)

Instalación manual de k8s

Instalar manualmente los distintos componentes del cluster. Construcción de cluster en producción, con características específicas, alta disponibilidad.

  • Tenemos que decidir en que infraestructura vamos a realizar la instalación: Máquina local, virtual, cloud, bare metal,...
  • Tenemos el control de la instalación y comprendemos perfectamente la arquitectura...
  • ...pero, puede ser complicado según nuestras necesidades.

Heat (k8s SIG)

Kubernetes OpenStack SIG (Grupo de Interés) (distintos grupos para desplegar K8s en distintos entornos) desarrolla plantillas Heat que permiten desplegar un cluster K8S en Openstack.

  • Esta solución facilita la provisón de recursos de OS
  • El nivel de desarrollo del proyecto sólo ofrece la construcción de cluster en pruebas, faltando todavía algunas funcionalidades...

Kargo (KubeSpray)

Kargo es un proyecto Open Source que le permite implementar un cluster de k8s en Bare Metal, AWS, GCE y OS usando una combinación de Terraform y Ansible.

  • Capaz de aprovisionar recursos de OS para deplegar cluster de k8s Multi-Master / HA
  • Es muy configurable y funciona con las distribuciones linux más populares.
  • La instalación es complicada, para usuarios avanzados con conocimiento en automatización con ansible

Juju de Canonical

Juju es una aplicación y servicio de modelado de Ubuntu que ayuda a implementar, gestionar y escalar aplicaciones en cualquier nube. Una de las posibilidades, proporcionada por Juju es el despliegue de clusters k8s.

  • La construcción es gráfica y muy sencilla
  • Alto grado de configuración
  • Poca posibilidad de migración (Lock-in)

OpenShift 3

OpenShift 3 es la Plataforma como servicio (PaaS) de Red Hat que permite a los desarrolladores desarrollar, alojar y escalar rápidamente aplicaciones en un entorno de nube.

  • Proporciona HA (varios maestros)
  • Proporciona soporte apara usar el LBaaS de OpenStack
  • Es un PaaS, un nivel de abstracción sobre el cluster k8s
  • Utiliza una versión más antigua de k8s

Magnum

Magnum es un componente de OpenStack que permite obtener un COE (Swarm, k8s, Mesos) montado sobre recursos de OS. (COEaaS).

  • Capacidad de provisión recursos OS a través de Heat.
  • Desde heat se configura completamente el cluster
  • Se necesitan imágenes preparadas: Fedora Atomic, CoreOs
  • Bajo nivel de madurez, por trabajar con tecnologías en constante cambio, configura k8s 1.2

Zun

Zun

  • Gestión de contenedores, no de COE
  • Proyecto muy reciente

Murano

Murano es un componente de OpenStack que introduce un catálogo de aplicaciones para OpenStack, y entre ellas, proporciona paquetes para desplegar y configurar el cluster de k8s a través de una interfaz de usuario amigable.