Llegamos a ustedes gracias a:



Reportajes y análisis

15 herramientas para domesticar los despliegues de Kubernetes

[07/12/2018] Kubernetes se ha convertido en una forma estándar, muchos dirían que es la forma estándar, de implementar aplicaciones en contenedores a escala. Pero si Kubernetes nos ayuda a domesticar extensos y complejos despliegues de contenedores, ¿qué hay disponible para ayudarnos a domesticar a Kubernetes? También puede ser complejo, desordenado y difícil de manejar.

A medida que Kubernetes crece y evoluciona, es probable que algunos de sus excesos sean domesticados desde dentro. Pero algunas personas no están esperando que Kubernetes se vuelva más fácil de manejar, y han desarrollado sus propias soluciones a muchos problemas comunes con Kubernetes en la producción.

Aquí destacamos 10 proyectos que simplifican Kubernetes de varias maneras, desde facilitar las interacciones de la línea de comandos, hasta simplificar la sintaxis de implementación de la aplicación, integrarse con AWS, y proporcionar una ventana a varios clústeres.

Bitnami Cabin: Panel de control de Kubernetes para iOS y Android

Ninguna aplicación o servicio web moderno debe estar sin algún tipo de interfaz móvil. Cabin proporciona a los administradores de Kubernetes una versión del panel de Kubernetes a la que se puede acceder desde un teléfono inteligente iOS o Android. Muchas de las funciones disponibles en el panel de control completo de Kubernetes se pueden iniciar desde Cabin, incluidas las tablas de Helm, las implementaciones de escalado, los registros de pod de lectura y el acceso a aplicaciones basadas en web alojadas por Kubernetes.

Kedge: Definiciones concisas de despliegue de Kubernetes

La queja más común sobre Kubernetes es cuán complejos y detallados son sus manifiestos o definiciones de aplicación. Son un dolor para escribirlos y un dolor para mantenerlos, por lo que no es de extrañar que las personas recurran a herramientas de terceros para obtener alivio. Kedge ofrece una sintaxis más sencilla y concisa. Proporciona la versión simple del archivo de definición de Kubernetes a Kedge, y Kedge expande esa definición simple en su contraparte de Kubernetes en toda regla. A diferencia de Koki Short (ver más abajo), Kedge no usa una sintaxis modular para sus archivos de declaración; simplemente reduce las definiciones de las aplicaciones a los atajos comunes.

Koki Short: Manifiestos manejables de Kubernetes

Koki Short, como Kedge arriba, es un proyecto para mejorar la forma en que las definiciones de aplicaciones, o manifiestos, funcionan en Kubernetes. Al igual que las definiciones de Kedge, las definiciones cortas utilizan una sintaxis abreviada para describir los pods de Kubernetes que se pueden traducir a la sintaxis completa y viceversa. A diferencia de las definiciones de Kedge, las definiciones cortas también son modulares, lo que significa que los detalles de una declaración corta se pueden reutilizar en otras, de modo que muchas cápsulas con elementos comunes se pueden definir de manera sucinta.

Kops: Operaciones de línea de comando para clusters de Kubernetes

Desarrollado por el equipo de Kubernetes, Kops le permite administrar los clústeres de Kubernetes desde la línea de comandos. Es compatible con los clústeres que se ejecutan en AWS y GCE, con VMware vSphere y otros entornos en las obras. Además de automatizar el proceso de instalación y desmontaje, Kops ayuda con otros tipos de automatización. Por ejemplo, puede generar configuraciones de Terraform para permitir que un clúster se vuelva a implementar utilizando Terraform.

Kubebox: Consola de terminal para Kubernetes

Una consola de terminal avanzada para Kubernetes, Kubebox, proporciona algo más que un shell glorificado para Kubernetes y su API. Proporciona pantallas interactivas de la memoria y la utilización de la CPU, listas de pods, registros de ejecución y editores de configuración. Lo mejor de todo es que está disponible como una aplicación independiente para Linux, Windows y MacOS.

Kube-monkey: Chaos Monkey para Kubernetes

Una manera segura de realizar pruebas de estrés en un sistema es romper cosas al azar. Esa es la teoría detrás del Chaos Monkey de Netflix, una herramienta de ingeniería del caos que termina aleatoriamente las máquinas virtuales y los contenedores que se ejecutan en la producción para "animar" a los desarrolladores a construir sistemas más resistentes. Kube-monkey es una implementación de la misma idea básica para los clústeres de Kubernetes que realizan pruebas de estrés. Funciona al matar aleatoriamente los pods en un grupo que usted designa específicamente, y puede ajustarse para operar dentro de ventanas de tiempo específicas.

Kube-ps1: Símbolo del sistema de Smart Kubernetes

No, Kube-ps1 no es un emulador de PlayStation de Sony de primera generación para Kubernetes (aunque eso sería bastante ingenioso). Es una adición simple a Bash que muestra el contexto de Kubernetes actual y el espacio de nombres en el indicador. Kube-shell incluye esto junto con muchas otras características, pero si lo único que desea es un indicador más inteligente, Kube-ps1 lo proporciona con poca sobrecarga.

Kube-prompt: Cliente interactivo de Kubernetes

Otra modificación mínima pero útil de la CLI de Kubernetes, Kube-prompt, le permite ingresar lo que equivale a una sesión de comando interactiva con el cliente Kubernetes. Kube-prompt le evita tener que escribir kubectl para prefijar cada comando, y proporciona autocompletar con información contextual para cada comando.

Kube-shell: Shell para la CLI de Kubernetes

La línea de comandos de Kubernetes es poderosa, pero como con cualquier aplicación de línea de comandos, seleccionar sus opciones puede ser tedioso. Kube-shell, envuelve la línea de comando estándar de Kubernetes en un shell integrado que proporciona autocompletado y auto-sugerencia de comandos comunes, incluidas las sugerencias proporcionadas por el servidor de Kubernetes (por ejemplo, para los nombres de los servicios). También le brinda una función de historial de comandos más robusta, un modo de edición de estilo y la información de contexto de ejecución para el usuario, el espacio de nombres, el clúster y otros detalles específicos de la instalación.

Kubespy: Monitoreo en tiempo real de los recursos de Kubernetes

Kubespy de Pulumi es una herramienta de diagnóstico que le permite rastrear cambios a un recurso Kubernetes en tiempo real, proporcionándole una especie de panel de vista de texto de los sucesos. Por ejemplo, puede ver los cambios en el estado de un pod, a medida que se inicia: la definición del pod se escribe en Etcd, el pod se programa para ejecutarse en un nodo, el Kubelet en el nodo que crea el pod, y el pod finalmente se marca como en ejecución. Kubespy puede ejecutarse como un binario independiente o como un complemento de Kubectl.

Kubernetes Ingress Controller para AWS

Kubernetes proporciona servicios de red y balanceo de carga externos a un clúster a través de un servicio llamado Ingress. Amazon Web Services proporciona una funcionalidad de equilibrio de carga, pero no une automáticamente estos servicios a las instalaciones de Kubernetes para obtener lo mismo. El controlador de ingreso de Kubernetes para AWS cierra esa brecha.

Ingress Controller administra los recursos de AWS para cada objeto de Ingress en un clúster de forma automática, creando equilibradores de carga para los nuevos recursos de ingreso y eliminando los equilibradores de carga de los eliminados, recurriendo a AWS CloudFormation para garantizar el estado constante del clúster. También gestiona automáticamente otros elementos utilizados en el clúster, como certificados SSL y EC2 Auto Scaling Groups.

Kube-ops-view: Panel de control para varios clústeres de Kubernetes

Kubernetes tiene un panel útil para el monitoreo de propósito general, pero la comunidad de Kubernetes está experimentando con otras formas de presentar datos de manera útil al administrador de Kubernetes. Kube-ops-view es uno de esos experimentos; proporciona una amplia vista rápida de varios clústeres Kubernetes, representados gráficamente, para que pueda ver de un vistazo el uso de la CPU y la memoria y el estado de las cápsulas en un clúster.

Tenga en cuenta que no le permite invocar ningún comando; es estrictamente para la visualización. Pero las visualizaciones que proporciona son sorprendentes y eficientes, nacidas para un monitor de pared en su centro de operaciones.

Skaffold: Desarrollo iterativo para Kubernetes

Skaffold es una de las herramientas de Google para Kubernetes, una forma de realizar un despliegue continuo para las aplicaciones de Kubernetes. Cuando realiza cambios en su código fuente, Skaffold los detecta automáticamente, desencadena el proceso de compilación y despliegue, y le advierte si surge algún error. Skaffold se ejecuta completamente en el lado del cliente. Se puede usar en un canal de CI/CD existente, y se integra con unas pocas herramientas de compilación externas, principalmente el propio Bazel de Google.

Stern y Kubetail: Registro de seguimiento para Kubernetes

Stern le permite producir una salida codificada por colores (según el comando tail ) desde pods y contenedores en Kubernetes. Es una forma rápida de canalizar toda la salida de múltiples recursos en un solo flujo que se puede leer de un vistazo. Al mismo tiempo, tiene una forma rápida (el código de color) para distinguir las corrientes.

Kubetail agrega de manera similar los registros de múltiples pods en una sola secuencia, codificando por colores diferentes pods y contenedores. Pero Kubetail es un script Bash, por lo que no requiere nada más que una shell.

Teresa: Un simple PaaS en Kubernetes

Teresa es un sistema de implementación de aplicaciones que se ejecuta como un simple PaaS en Kubernetes. Los usuarios, organizados en equipos, pueden implementar y administrar aplicaciones que les pertenecen. Esto hace que sea un poco más fácil para las personas a las que se les confía una aplicación determinada para que trabajen con ella, sin tener que tratar con Kubernetes directamente.