11 herramientas que mejoran Kubernetes

11 herramientas que mejoran Kubernetes

No todas las plataformas de servidores, ni siquiera las más potentes y escalables, satisfacen todas las necesidades tal cual. Si bien Kubernetes funciona muy bien por sí solo, es posible que le falten las piezas adecuadas para estar completo. Siempre encontrará un caso especial que ignora su necesidad, o en el que Kubernetes no funcionará en la instalación predeterminada, por ejemplo, soporte de base de datos o operación de CD.

Aquí es donde aparecen las adiciones, extensiones y otras ventajas para este orquestador de contenedores, respaldadas por una amplia comunidad. Este artículo presentará las 11 mejores cosas que encontramos. a nosotros mismos en Southbridge son muy interesantes y planeamos abordarlos de manera práctica: desarmarlos en tornillos y tuercas y ver qué hay dentro. Algunos de ellos complementarán perfectamente cualquier clúster de Kubernetes, mientras que otros ayudarán a resolver problemas específicos que no están implementados en el paquete estándar de Kubernetes.

Guardián: gestión de políticas

proyecto Agente de políticas abierto (OPA) brinda la capacidad de crear políticas sobre las pilas de aplicaciones en la nube en Kubernetes, desde el ingreso hasta la malla de servicios. Portero brinda a Kubernetes la capacidad nativa de aplicar políticas automáticamente en todo el clúster y también proporciona inspección de cualquier evento o recurso que viole una política. Todo esto se maneja mediante un mecanismo relativamente nuevo en Kubernetes, el administrador de admisión de Webhooks, que se activa cuando cambian los recursos. Con Gatekeeper, las políticas de OPA se convierten en otra parte del estado de su clúster de Kubernetes sin necesidad de una supervisión constante.

Gravedad: Clústeres de Kubernetes portátiles

Si desea implementar una aplicación en Kubernetes, muchas aplicaciones tienen un gráfico Helm que guía y automatiza este proceso. Pero, ¿qué sucede si desea tomar su clúster de Kubernetes tal como está e implementarlo en otro lugar?

Gravedad toma instantáneas del estado de los clústeres de Kubernetes, sus registros de imágenes de contenedores y aplicaciones en ejecución denominadas "paquetes de aplicaciones". Un paquete de este tipo, que es un archivo normal .tar, puede replicar el clúster en cualquier lugar donde se pueda ejecutar Kubernetes.

Gravity también verifica que la infraestructura de destino se comporte igual que la de origen y que el entorno de Kubernetes en el destino esté disponible. La versión paga de Gravity también agrega funciones de seguridad, incluido RBAC y la capacidad de sincronizar configuraciones de seguridad en diferentes implementaciones de clústeres.

La última versión principal, Gravity 7, puede implementar una imagen de Gravity en un clúster de Kubernetes existente, en lugar de crear un clúster completamente nuevo a partir de la imagen. Gravity 7 también puede funcionar con clústeres instalados sin una imagen de Gravity. Gravity también es compatible con SELinux y funciona de forma nativa con la puerta de enlace Teleport SSH.

Kaniko: construcción de contenedores en un clúster de Kubernetes

La mayoría de las imágenes de contenedores se crean en sistemas fuera de la pila de contenedores. Sin embargo, a veces es necesario crear una imagen dentro de una pila de contenedores, por ejemplo, en algún lugar de un contenedor en ejecución o en un clúster de Kubernetes.

Kaniko construye contenedores dentro de un entorno de contenedores, pero sin depender de un servicio de contenedorización, como Docker. En cambio, Kaniko extrae el sistema de archivos de la imagen base, ejecuta todos los comandos de compilación en el espacio del usuario encima del sistema de archivos extraído y toma una instantánea del sistema de archivos después de cada comando.

Nota: Kaniko se encuentra actualmente (mayo de 2020, aprox. traductor) no puede crear contenedores de Windows.

Kubecost: parámetros de costo de inicio de Kubernetes

La mayoría de las herramientas de administración de Kubernetes se centran en la facilidad de uso, el seguimiento, la comprensión del comportamiento dentro de un pod, etc. Pero ¿qué tal si analizamos el costo (en dólares y centavos) asociado con la ejecución de Kubernetes?

Costo de Kube Procesa los parámetros de Kubernetes en tiempo real, lo que genera información de costos actualizada de los clústeres en ejecución en los principales proveedores de nube, que se muestra en un panel que muestra el costo mensual de cada clúster. Los precios de RAM, tiempo de CPU, GPU y subsistema de disco se desglosan por componente de Kubernetes (contenedor, pod, servicio, etc.)

Kubecost también rastrea el costo de los recursos fuera del clúster, como los depósitos de Amazon S3, aunque esto se limita a AWS. Los datos de costos se pueden enviar a Prometheus para que pueda usarlos para cambiar mediante programación el comportamiento del clúster.

Kubecost es de uso gratuito siempre que 15 días de datos de registro sean suficientes para usted. Para funciones adicionales, los precios comienzan en $199 mensuales para monitorear 50 nodos.

KubeDB: Ejecutando bases de datos de combate en Kubernetes

Las bases de datos también son bastante difíciles de ejecutar de forma eficaz en Kubernetes. Encontrará 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 le ayuda a crear sus declaraciones de Kubernetes para administrar bases de datos. Sus componentes son la ejecución de copias de seguridad, la clonación, la supervisión, las instantáneas y la creación de bases de datos declarativas. Tenga en cuenta que la compatibilidad con funciones varía según la base de datos. Por ejemplo, crear un clúster funciona para PostgreSQL, pero no para MySQL (ya hay, como se señaló correctamente dnbstd, aprox. traductor).

Kube-monkey: Mono del Caos para Kubernetes

Se considera que el método de prueba de estrés más libre de errores son las averías aleatorias. Esa es la teoría detrás de Chaos Monkey de Netflix, una herramienta de ingeniería caótica que apaga aleatoriamente máquinas virtuales y contenedores de producción para "incentivar" a los desarrolladores a construir sistemas más resistentes. mono kube — implementación de la misma teoría básica de pruebas de estrés para los clústeres de Kubernetes. Funciona eliminando aleatoriamente los pods en el clúster que usted designe y también se puede configurar para que se ejecute en un intervalo de tiempo específico.

Controlador de ingreso 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 Ingreso AWS proporciona funcionalidad de equilibrio de carga, pero no la vincula automáticamente a las mismas capacidades de Kubernetes. Controlador de ingreso de Kubernetes para AWS cierra esta brecha.

Administra automáticamente los recursos de AWS para cada objeto de entrada en el clúster, creando balanceadores de carga para nuevos recursos de entrada y eliminando balanceadores de carga cuando se eliminan recursos. Utiliza CloudFormation para garantizar que el estado del clúster siga siendo coherente. También admite la configuración de CloudWatch Alarm y administra automáticamente otros elementos utilizados en el clúster, como certificados SSL y grupos de EC2 Auto Scaling.

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 de hardware hasta las principales nubes públicas. Utiliza Ansible (Vagrant - opcional) para ejecutar la implementación y crear un clúster de alta disponibilidad desde cero con su elección de complemento de red (como franela, Calico y otros) en la distribución popular de Linux que elija cuando se instala en servidores de hardware.

Skaffold: desarrollo iterativo para Kubernetes

patín - una de las herramientas de Google utilizada para organizar aplicaciones de CD en Kubernetes. Tan pronto como realiza cambios en el código fuente, skaffold lo detecta automáticamente, comienza a compilarlo e implementarlo y le advierte si hay algún error. Skaffold se ejecuta completamente en el lado del cliente, por lo que puede haber problemas menores de instalación o actualización. Se puede utilizar con canalizaciones CICD existentes y también puede interactuar con algunas herramientas de compilación externas, principalmente Bazel de Google.

Teresa: La PaaS más sencilla en Kubernetes

Teresa es un sistema de implementación de aplicaciones que ejecuta una PaaS simple sobre Kubernetes. Los usuarios organizados en equipos pueden implementar y administrar las aplicaciones que poseen. Esto facilita un poco las cosas para las personas que confían en la aplicación y no quieren lidiar con Kubernetes y todas sus complejidades.

Tilt: Transmisión de actualizaciones de contenedores a clústeres de Kubernetes

inclinación, desarrollado por Windmill Engineering, busca cambios en diferentes Dockerfiles y luego implementa gradualmente los contenedores correspondientes en un clúster de Kubernetes. Básicamente, le permite actualizar su clúster de producción en tiempo real simplemente actualizando Dockerfiles. Tilt se compila dentro del clúster, el código fuente es todo lo que necesita cambiarse. También puede tomar una instantánea del estado del clúster y capturar las condiciones de error directamente desde Tilt para compartirla con los miembros del equipo para su depuración.

PD: Hemos utilizado repetidamente todas estas herramientas. Southbridge sondeados con nuestras manos curiosas. Presentar prácticas reales ya (¡con suerte!) en cursos intensivos fuera de línea en febrero. Base de Kubernetes 8 al 10 de febrero de 2021. Y Mega de Kubernetes 12 al 14 de febrero. Honestamente, también extrañamos la atmósfera cálida y cargada de energía del aprendizaje fuera de línea. Por muy avanzadas que sean las tecnologías, no pueden reemplazar la comunicación humana en vivo y una atmósfera especial cuando se reúnen personas de ideas afines.

Fuente: habr.com

Añadir un comentario