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 de los servicios administrados de Kubernetes
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?