11 herramientas que mejoran Kubernetes

11 herramientas que mejoran Kubernetes

No todas las plataformas de servidor, incluso las más potentes y escalables, satisfacen todas las necesidades tal como están. Aunque Kubernetes funciona muy bien por sí mismo, puede que le falten las piezas necesarias para ser completo. Siempre encontrarás un caso específico que ignora tu necesidad o en el que Kubernetes no funcionará con la instalación predeterminada, por ejemplo, soporte para bases de datos o trabajo con CD.

Aquí es donde aparecen complementos, extensiones y otras mejoras para este orquestador de contenedores, respaldados por una extensa comunidad. En este artículo encontraremos las 11 mejores cosas. A nosotros mismos nos Southbridge les parece muy interesante y planeamos analizarlas prácticamente, desarmarlas y ver qué hay dentro. Algunas de ellas complementarán perfectamente cualquier clúster de Kubernetes, mientras que otras ayudarán a resolver tareas específicas que no se implementan en la instalación estándar de Kubernetes.

Gatekeeper: gestión de políticas

Proyecto Open Policy Agent (OPA) proporciona la capacidad de crear políticas sobre pilas de aplicaciones en la nube en Kubernetes, desde ingress hasta service mesh. Gatekeeper ofrece una manera nativa de Kubernetes para aplicar políticas en el clúster automáticamente, así como para verificar cualquier evento o recurso que infrinja la política. Todo esto se gestiona mediante un mecanismo relativamente nuevo de Kubernetes, el despachador de acceso Webhooks, que se activa al modificar recursos. Con Gatekeeper, las políticas de OPA se convierten en otra parte del estado de tu clúster de Kubernetes, sin necesidad de supervisión constante.

Gravity: Clústeres Kubernetes portátiles

Si deseas implementar una aplicación en Kubernetes, muchas aplicaciones tienen charts de Helm que dirigen y automatizan este proceso. Pero, ¿qué sucede si quieres llevar tu clúster de Kubernetes "tal cual" y desplegarlo en otro lugar?

Gravity toma instantáneas del estado de los clústeres Kubernetes, su registro para imágenes de contenedores, así como de las aplicaciones en ejecución, llamadas "paquetes de aplicaciones". Un paquete, que es un archivo común .tar, puede replicar el clúster en cualquier lugar donde Kubernetes pueda funcionar.

Gravity también verifica que la infraestructura de destino se comporte de la misma manera que la original, así como que el entorno de Kubernetes en el destino sea accesible. La versión de pago de Gravity también añade características de seguridad, incluyendo RBAC y la posibilidad de sincronizar configuraciones de seguridad entre diferentes despliegues de clústeres.

La última versión principal, Gravity 7, puede desplegar la imagen de Gravity en un clúster de Kubernetes existente, en lugar de desplegar un nuevo clúster completo a partir de la imagen. Gravity 7 también puede trabajar con clústeres que han sido instalados sin el uso de la imagen de Gravity. Además, Gravity es compatible con SELinux y funciona de manera nativa con el gateway Teleport SSH.

Kaniko: Construcción de contenedores en el clúster de Kubernetes

La mayoría de las imágenes de contenedores se construyen en sistemas fuera del stack de contenedores. Sin embargo, a veces es necesario construir una imagen dentro del stack de contenedores, por ejemplo, en un contenedor en funcionamiento o en un clúster de Kubernetes.

Kaniko realiza la construcción de contenedores dentro del entorno de contenedores, pero sin depender del servicio de contenedorización, como Docker. En su lugar, Kaniko extrae el sistema de archivos de la imagen base, ejecuta todos los comandos de construcción en el espacio de usuario sobre el sistema de archivos extraído, haciendo una captura del sistema de archivos después de cada comando.

Nota: Kaniko en este momento (mayo de 2020, nota del traductor) no puede construir contenedores para Windows.

Kubecost: Opciones de costo para ejecutar Kubernetes

La mayoría de las herramientas de administración de Kubernetes están enfocadas en la facilidad de uso, la monitorización, la comprensión del comportamiento dentro de los pods, etc. Pero, ¿qué hay de observar el costo—en rublos y kopeks—relacionado con la ejecución de Kubernetes?

Kubecost procesa las métricas de Kubernetes en tiempo real, lo que resulta en la llegada de información sobre el costo actual de los clústeres en ejecución con proveedores de servicios en la nube principales, que se muestra en un panel con el costo mensual de cada clúster. Los precios por memoria operativa, tiempo de CPU, GPU y subsistema de disco están desglozados por componentes de Kubernetes (contenedor, pod, servicio, etc.).

Kubecost también rastrea el costo de recursos fuera del clúster, como los buckets de Amazon S3, aunque está limitado a AWS. Los datos de costo pueden enviarse a Prometheus, por lo que puedes utilizarlos para modificar el comportamiento del clúster de forma programática.

Kubecost es gratuito para usar si te basta con los datos de los registros de 15 días. Para funciones adicionales, los precios comienzan en 199 $ al mes para el monitoreo de 50 nodos.

KubeDB: Ejecutando bases de datos en producción en Kubernetes

Las bases de datos también son bastante difíciles de ejecutar de manera efectiva en Kubernetes. Encontrarás operadores de Kubernetes para MySQL, PostgreSQL, MongoDB y Redis, pero todos tienen desventajas. Además, el conjunto de funciones típico de Kubernetes no resuelve directamente la mayoría de los problemas específicos de las bases de datos.

KubeDB te ayuda a crear tus propios operadores de Kubernetes para gestionar bases de datos. La ejecución de copias de seguridad, clonación, monitoreo, creación de instantáneas y la creación declarativa de bases son sus componentes. Ten en cuenta que el soporte de funciones depende de la base de datos. Por ejemplo, la creación de clústeres funciona para PostgreSQL, pero no para MySQL ((envío de datos). hay, como bien observaste dnbstd, nota del traductor).

Kube-monkey: Chaos Monkey para Kubernetes

El método más infalible de probar la resistencia es a través de fallos aleatorios. Esta teoría es la base de Chaos Monkey de Netflix, una herramienta de ingeniería caótica que apaga aleatoriamente máquinas virtuales y contenedores en entornos de producción para 'estimular' a los desarrolladores a crear sistemas más resilientes. Kube-monkey es una implementación de la misma teoría básica de pruebas de estrés para clústeres de Kubernetes. Funciona matando aleatoriamente módulos en el clúster que tú designes, y también puede configurarse para funcionar en un intervalo de tiempo específico.

Controlador Ingress de Kubernetes para AWS

Kubernetes proporciona un equilibrador de carga externo y servicios de red de clúster a través de un servicio llamado Ingress AWS proporciona funciones de equilibrio de carga, pero no las vincula automáticamente con capacidades equivalentes de Kubernetes. Controlador Ingress de Kubernetes para AWS cierra esta brecha.

Gestión automáticamente los recursos de AWS para cada objeto ingress en el clúster, creando equilibradores de carga para nuevos recursos ingress, y eliminando equilibradores al eliminar recursos. Utiliza CloudFormation para asegurarse de que el estado del clúster se mantenga integral. También admite configuraciones de CloudWatch Alarm y gestiona automáticamente otros elementos utilizados en el clúster, como certificados SSL y Grupos de Escalado Automático de EC2.

Kubespray: Instalación automática de Kubernetes

Kubespray automatiza la instalación de un clúster de Kubernetes listo para producción, desde la instalación en servidores físicos hasta los principales nubes públicas. Utiliza Ansible (Vagrant como complemento) para iniciar el despliegue y crear un clúster de alta disponibilidad desde cero con el complemento de red que elija (por ejemplo, Flannel, Calico y otros) en la distribución de Linux popular que elija al instalar en servidores físicos.

Skaffold: Desarrollo iterativo para Kubernetes

Skaffold — una de las herramientas de Google utilizadas para organizar CD de aplicaciones en Kubernetes. Tan pronto como realizas cambios en el código fuente, Skaffold lo detecta automáticamente, inicia la compilación y el despliegue, y te advierte si hay algún error. Skaffold se ejecuta completamente en el lado del cliente, por lo que pueden existir pequeñas particularidades con la instalación o la actualización. Puede utilizarse con tuberías CICD existentes, así como interactuar con algunas herramientas de compilación externas, principalmente Bazel de Google.

Teresa: El PaaS más sencillo sobre Kubernetes

Teresa es un sistema de despliegue de aplicaciones que ejecuta un PaaS sencillo sobre Kubernetes. Los usuarios, organizados por equipos, pueden desplegar y gestionar sus aplicaciones. Esto facilita un poco el trabajo a las personas que confían en esta aplicación y no desean lidiar con Kubernetes y todas sus complejidades.

Tilt: Envío continuo de actualizaciones de contenedores al clúster de Kubernetes

Tilt, desarrollado por Windmill Engineering, supervisa los cambios en los diferentes archivos Dockerfile y luego despliega gradualmente los contenedores correspondientes en el clúster de Kubernetes. En esencia, permite actualizar un clúster en producción en tiempo real simplemente actualizando los archivos Dockerfile. Tilt realiza la compilación dentro del clúster, el código fuente es todo lo que necesitas modificar. También puedes hacer un volcado del estado del clúster y fijar las condiciones de errores directamente desde Tilt, para compartirlos con los miembros del equipo para la depuración.

P.D. Todas estas herramientas las hemos probado repetidamente con nuestras curiosas manos. Con el fin de presentar prácticas reales ya (¡espero!) en intensivos presenciales en febrero. Southbridge Kubernetes Base 8–10 de febrero de 2021. Y Kubernetes Mega Kubernetes Mega 12-14 de febrero. Honestamente, también hemos echado de menos la cálida y energizante atmósfera del aprendizaje presencial. Por más avanzadas que sean las tecnologías, no podrán reemplazar la interacción humana y la atmósfera especial que se crea cuando se reúnen personas con ideas afines.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster