Kubernetes HA y OpenStack

Proyecto final CFGS Celtic Kubernetes

Juan Manuel Torres Díaz

Características Kubernetes

  • Escrito en GoLang
  • Licencia Apache
  • Versión inicial: 6 Junio de 2014
  • Creador original: Google
  • Empresas que contribuyen: Google, CoreOS, RedHat, Mesosphere, Microsoft, HP, IBM, VMWare, Pivotal, SaltStack, etc.
  • Web: http://kubernetes.io

Evolución de Kubernetes

  1. Google anuncia Kubernetes.
  2. Microsoft, Red Hat, IBM, Docker, CoreOS, Mesosphere y SaltStack se unen a Kubernetes.
  3. Mesosphere desarrolla Kubernetes para gestionar Docker.
  4. VMware y HP se une a la comunidad Kubernetes.
  5. Google y Mirantis se asocian para llevar Kubernetes a OpenStack.
  6. Google y CoreOS anuncian Tectonic (Distribución de Kubernetes y CoreOS).
  7. Intel se une a la comunidad Kubernetes para colaborar en Tectonic.

  8. Google Container Engine entra en beta pública.

  9. Google se une a OpenStack Foundation.

Componentes Kubernetes

  • ETCD - Almacenamiento HA clave:valor de configuración de Kubernetes y servicios.
  • Flannel - red virtual backed para pods.
  • kube-apiserver - API para orquestación.
  • kube-controller-manager - gestiona los servicios de Kubernetes.
  • kube-scheduler - registro de pods en los minions.
  • kube-proxy - balanceador para pods.
  • kubelet - Supervisa que los pods se ejecutan correctamente.
  • Contenedores (Por ahora Docker)

Conceptos Kubernetes

  • Imagenes de contenedores.
  • Pods - Grupo de contenedores.
  • Labels - etiquetas para identificar pods.
  • Controladores de replica - Gestionan la replica de los pods.
  • Servicio - política de entrada a los pods
  • Volumen persistentes para los pods.

Ejemplo de funcionamiento

Ciclo de vida de los Pods

Estructura basica Kubernetes

Almacenamiento persistente Kubernetes

Para dar almacenamiento persistente en Kubernetes, podremos utilizar:

  -  NFS

  -  iSCSI

  -  RBD

  -  Glusterfs

  -  HostPath

  -  GCEPersistentDisk

  -  AWSElasticBlockStore

 

Almacenamiento Kubernetes

Para cualquiera de los anteriores en Kubernetes tendremos que crear:

  • PersistentVolume - Donde especificamos el volumen persistente
  • PersistentVolumeClaim - Donde reclamamos espacio en el volumen

 

Ejemplo almacenamiento

Addons Kubernetes

  -  Heapster: monitorizar

  -  Fluentd-elasticsearch: monitorizar

  -  Dashboard: interfaz web oficial de Kubernetes

  -  Registry: Docker Registry interno

  -  Kube-DNS: DNS interno

 

Adicionales:

  -  Elastickube: interfaz web

 

 

ElasticKube

Nombre Función Numero IP externa IP interna
Tanaris Proxy 1 172.22.205.244 10.0.0.48
Belenus Proxy 2 172.22.205.247 10.0.0.53
Morrigan KMaster 1 172.22.205.240 10.0.0.43
Balar KMaster 2 172.22.205.241 10.0.0.44
Artio KMinion 1 172.22.205.242 10.0.0.45
Esus KMinion 2 172.22.205.243 10.0.0.46
Angus Almacenamiento 1 172.22.205.245 10.0.0.52
Dagda Almacenamiento 2 172.22.205.246 10.0.0.50

Escenario Celtic Kubernetes          sobre OpenStack

IP subnet (VIP) IP Flotante Servicio
10.0.0.38 172.22.205.248 Entrada a HAProxy dinamico
10.0.0.39 172.22.205.249 API Kubernetes masters

Información Virtual IP

Resumen Documentación

  • Despliegue simple Kubernetes, Kubernetes HA y Kubernetes con Ansible.
  • Addons Kubernetes:
    • DNS interno SkyDNS.
    • DashBoard.
  • Exponer servicios:
    • Balanceadores dinamicos.
    • Ingress.
  • Almacenamiento:
    • NFS.
    • Glusterfs.
  • Uso y mejoras.

Mejoras

Necesarias:

  • Kubernetes API HTTPs
  • Kubernetes Autenticación
  • Auto-escalado de minions
  • Mejorar solución del balanceador externo

 

Adicionales:

  • Cambiar kube-dashboard  por ElasticKube

Kubernetes + OpenStack

Evolución de OpenStack con Kubernetes

  • Usar Kubernetes para gestionar minions que se ejecuten sobre OpenStack

 

  • Usar Kubernetes para gestionar los contenedores de OpenStack

 

 

Componentes para OpenStack

  • Magnum - Proporciona contenedores como un servicio para OpenStack.
  • Murano - Proporciona un catálogo de aplicaciones para OpenStack incluyendo soporte para Kubernetes, y para aplicaciones en contenedores, gestionados por Kubernetes.

 

 

 

OpenStack Magnum

Compatible con:

  • Kubernetes
  • Swarm
  • Mesos

Arquitectura:

  • BayModel (Plantilla para crear Bay)
  • Bay (Donde se ejecuta el Orquestador)
  • Pod
  • Service
  • RC
  • Container

Fin de la presentación

Kubernetes HA

By tedezed

Kubernetes HA

  • 4,798