Tras el éxito de nuestra entrada de Blog de Kubernetes vs Docker Swarm y la gran popularidad  de Kubernetes  en los sistemas actuales, hoy vamos a realizar un análisis de los diferentes servicios administrados de Kubernetes que nos ofrecen los principales proveedores de Cloud público que hay en el mercado: Amazon Web Services, Azure y Google Cloud.

 

Amazon Web Services (EKS)

 

Disponible desde Junio de 2018 el servicio Amazon EKS es la solución de alojamiento de Kubernetes en Amazon Web Services. AWS intentó que sus usuarios utilizasen su solución propia Amazon Container Service antes de lanzar el servicio gestionado de Kubernetes.

 

Azure (AKS)

 

El servicio de AKS fue lanzado en Junio de 2018 igual que hizo Amazon. Microsoft ya disponía de un servicio similar con orquestación de clúster a través de su anterior servicio Azure Container Services el cuál soportaba Kubernetes, Apache Mesos y Docker Swarm.

 

Google Cloud (GKE)

Google es el creador de la solución de Kubernetes y como es natural el servicio de GKE fue el primer servicio gestionado de Kubernetes en el Mercado, esto implica que sea la solución más avanzada del mercado

Comparativa

En esta sección vamos a comparar las características claves de los tres proveedores. En la siguiente tabla ofreceremos un análisis de cada una de las características.

  Amazon EKS Microsoft AKS Google GKE
Versiones de Kubernetes soportadas actualmente 1.18
1.17
1.16
1.15
1.20
1.19
1.18
1.17
1.17
1.16
1.15
1.14
Fecha de Lanzamiento Servicio Junio 2018 Junio 2018 Agosto 2015
Certificación CNCF Kubernetes Si Si Si
Actualización Clúster Manual
El usuario debe actualizar los diferentes componentes/servicios del sistema como: kube-proxy, kube-node o AWS VPC CNI
Manual
Todos los componentes del Sistema se actualizan con la actualización del Clúster
Automático (defecto) o Manual
Actualización de Nodos Manual
EKS drenará y eliminará el nodo
Automatic o manual
AKS drenará y eliminará el nodo
Automatic (default)
Automático (defecto)
GKE drena y reemplaza los nodos
SO Nodos Linux:
Amazon Linux 2 (default)
Ubuntu (Partner AMI)
Bottlerocket
Windows:
Windows Server 2019
Linux:
Ubuntu
Windows:
Windows Server 2019
Linux:
Container-Optimized OS (COS) (default)
Ubuntu
Windows:
Windows Server 2019
Windows Server version 1909
Ejecución de Contenedores Docker (default)
Containerd (a través Bottlerocket)
Docker (default)
Containerd
Docker (default)
Containerd
GVisor
Alta disponibilidad Cluster Panel de Control desplegado entre múltiples Zonas de Disponibilidad (por defecto) El despliegue del Panel de Control se desplegará en el número de zonas definidas por el administrador Clúster de Zona:
Panel de Control Único
Clúster Regionales
Quorum de tres Paneles de Control de Kubernetes
SLA Capa de Control 99.95% 99.95% 99.95%
Precio 0.10$/hora (USD) por clúster + coste base de las instancias EC2 y los otros recursos Pago por uso: Coste estándar por nodo y el resto de recursos 0.10$/hora (USD) por clúster + los costes estándar por las maquinas de GCE y los otros recursos
Soporte GPU Si (NVIDIA)
Requiere la instalación de un plugin
Si (NVIDIA)
Requiere la instalación de un plugin
Si (NVIDIA)
Requiere la instalación de un plugin Compute Engine A2 VMs
RBAC Si Si Si
Panel de Control: Almacenamiento de Log Opcional
Defecto: Off
Los logs son enviados a AWS CloudWatch
Opcional
Defecto: Off
Los logs son enviados a Azure Monitor
Opcional
Defecto: Off
Los logs son enviados a Stackdriver
Métricas Rendimiento Contenedores Opcional
Defecto: Off
La métricas son enviadas a AWS CloudWatch Container Insights
Opcional
Defecto: Off
La métricas son enviadas a Azure Monitor
Opcional
Defecto: Off
La métricas son enviadas a Stackdriver
Monitorización Estado Nodos No existe soporte de estado de Kubernetes.
Si los nodos fallan el grupo de auto-escalado de AWS reemplaza el nodo automáticamente.
Ahora disponible Auto reparación.
La monitorización del estado de nodos esta disponible
Utilice reglas de auto-escalado para definir procesos
Auto-reparación de nodo habilitada por defecto
Serverless AWS Fargate Azure Container Instances Cloud Run for Anthos
Servicio On-Premise Via AWS Outposts Si Vía Anthos GKE On Prem a través del servicio Google Connect para gestión de multi-cluster en entornos vSphere 6.5 y 6.7

Note: The Cloud services evolve very quickly, so some of these details may be out of date.

Conclusion

Como se observa, todos los servicios gestionados de Kubernetes ofrecidos por parte de los tres principales proveedores de Cloud cubren las principales características para la administración de un clúster de Kubernetes como son: la gestión de clúster, la escalabilidad, la tolerancia a fallos, la automatización, la monitorización y la integración de soluciones terceras.

 

La solución de Google GKE al ser pionera de la tecnología Kubernetes tiene una mayor integración y es la que lanza con mayor agilidad las nuevas características y compatibilidades de Kubernetes. Por parte de Amazon Web Services con EKS tiene en su haber el respaldo de la mejor plataforma de Cloud Computing por lo que los usuarios suelen optar por esta solución debido al respaldo que tienen de Amazon Web Services. A nivel de Azure AKS, esta muy próxima a la solución de Amazon EKS a nivel de funcionalidades y características, por lo que apostar por esta solución dependerá principalmente del ecosistema de su entorno de aplicación, ya que muchas de las grandes compañías optan por esta solución debido a que el CORE de sus plataformas se basan en Windows y están alojadas en Azure.

 

¡Conoce como podemos ayudarte a implementar y gestionar tus clúster de Kubernetes!

 

¿Estas un servicio gestionado de Kubernetes en estos momentos? ¿Cuál es tu favorito?