19 ferramentas para domar implantações Kubernetes

Use-as para simplificar as definições de aplicativos, aprimorar o monitoramento, facilitar a implantação de nuvens e muito mais

Author Photo
8:22 am - 21 de janeiro de 2019

Kubernetes tornou-se um modo padrão – muitos diriam o modo padrão – de implantar aplicativos em container em escala. Mas se o Kubernetes nos ajuda a domar implantações complexas e dispersas de containers, o que está disponível para nos ajudar a domar o Kubernetes? Ele também pode ser complexo, confuso e difícil de administrar.

Como o Kubernetes cresce e evolui, é provável que alguns de seus excessos sejam domados por dentro. Mas se você não pode esperar por elas, aqui estão 19 projetos que simplificam o Kubernetes de várias maneiras, desde facilitar as interações de linha de comando, simplificar a sintaxe de implantação de aplicativos, integrar-se com a AWS, fornecer uma janela para vários clusters.

1 – Bitnami Cabin: painel do Kubernetes para iOS e Android
Nenhum aplicativo ou serviço da web moderno deve prescindir de algum tipo de interface móvel. O Cabin fornece aos administradores Kubernetes uma versão do painel do Kubernetes acessível a partir de um smartphone iOS ou Android. Muitas das funções disponíveis no painel completo do Kubernetes podem ser lançadas a partir do Cabin, incluindo gráficos Helm, escalonamento de implementações, leitura de registros de pod e acesso a aplicativos baseados na Web hospedados pelo Kubernetes.

2 – Goldpinger: para visualizar clusters do Kubernetes
Humanos são criaturas visuais. Grafos e gráficos facilitam a compreensão do quadro geral. E, considerando o escopo e a complexidade de um cluster do Kubernetes, poderíamos usar toda a ajuda visual possível.

O  Goldpinger é uma ferramenta simples executada dentro de um cluster do Kubernetes e exibe um mapa interativo das relações entre os nós. Nós saudáveis ​​aparecem em verdes e os não íntegros em vermelho. Basta clicar em um nó para ter acesso aos detalhes. Você pode personalizar a API com o Swagger para gerar relatórios, métricas ou outras integrações adicionais.

3 – Kedge: definições de implantação concisas do Kubernetes
A queixa mais comum sobre o Kubernetes é quão complexos e verborrágicos são os manifestos, ou definições de aplicativos. Eles são uma dor para escrever e uma dor para manter, por isso não é de admirar que as pessoas se voltem para ferramentas de terceiros para facilitar o processo. O Kedge  oferece uma sintaxe mais simples e concisa. Você fornece a versão simples do arquivo de definição do Kubernetes para o Kedge, e o Kedge expande essa definição simples para o seu correspondente Kubernetes. Ao contrário do Koki Short (veja abaixo), o Kedge não usa uma sintaxe modular para seus arquivos de declaração; apenas resume definições de aplicativos para atalhos comuns.

4 – Koki Short: manifestos de Kubernetes gerenciáveis
Como o  Kedge, o Koki Short é um projeto para melhorar a maneira como as definições de aplicativos, ou manifestos, funcionam no Kubernetes. Como as definições do Kedge, as definições Short usam uma sintaxe abreviada para descrever os pods do Kubernetes que podem ser traduzidos para a sintaxe completa e vice-versa. Ao contrário das definições de Kedge, as definições curtas também são modulares, o que significa que detalhes de uma declaração Short podem ser reutilizados em outros, de modo que muitos pods com elementos comuns podem ser definidos sucintamente.

5 – Kops: ops de linha de comando para clusters do Kubernetes
Desenvolvido pela equipe do Kubernetes, o Kops permite gerenciar clusters do Kubernetes a partir da linha de comando. Ele suporta clusters em execução no AWS e no GCE, com o VMware vSphere e outros ambientes. Além de automatizar o processo de configuração e desmontagem, o Kops ajuda com outros  tipos  de automação. Por exemplo, ele pode gerar configurações do Terraform para permitir que um cluster seja reimplantado usando o Terraform.

6 – Kubebox: console de terminal para o Kubernetes
Um console de terminal avançado para Kubernetes, o Kubebox  oferece mais do que apenas um shell para o Kubernetes e sua API. Ele fornece exibições interativas de memória e utilização da CPU, listas de pods, registros em execução e editores de configuração. O melhor de tudo, está disponível como um aplicativo independente para Linux, Windows e MacOS.

7 – KubeDB: para executar bancos de dados no Kubernetes
Bancos de dados sempre foram difíceis de executar elegantemente no Kubernetes. E o conjunto de recursos nativos do Kubernetes não aborda diretamente muitos dos problemas específicos dos bancos de dados.

O KubeDB  permite que um administrador crie operadores do Kubernetes para gerenciar bancos de dados. Executar backups, clonagem, monitoramento, snapshot e criação de bancos de dados de forma declarativa fazem parte do mix. O cluster também é suportado, mas apenas em alguns bancos de dados – por exemplo, ele está disponível para o PostgreSQL, mas não para o MySQL (ainda).

8 – Kube-monkey: Chaos Monkey para Kubernetes
Uma maneira infalível de testar um sistema é quebrar coisas aleatoriamente. Essa é a teoria por trás do Chaos Monkey, da Netflix, uma ferramenta de engenharia do caos que termina aleatoriamente máquinas virtuais e containers em execução na produção para “encorajar” os desenvolvedores a construir sistemas mais resilientes. O Kube-monkey é uma implementação da mesma ideia básica para stress-testing de clusters Kubernetes. Ele funciona matando aleatoriamente pods em um cluster que você especificamente designa, e pode ser ajustado para operar dentro de janelas de tempo específicas.

9 – Kube-ps1: prompt de comando do Smart Kubernetes
Não, Kube-ps1 não é um emulador Sony PlayStation para Kubernetes (apesar de que seria bem bacana). É uma simples adição ao Bash que exibe o contexto atual do Kubernetes e o namespace no prompt. O Kube-shell inclui isso junto com muitos outros recursos, mas se tudo o que você quer é o prompt mais inteligente, o Kube-ps1 fornece pouca sobrecarga.

10 – Kube-prompt: cliente interativo Kubernetes
Outra modificação mínima, mas útil, na CLI do Kubernetes, o Kube-prompt permite que você digite o equivalente a uma sessão de comando interativa com o cliente Kubernetes. O Kube-prompt poupa você de ter que digitar kubectlpara prefixar todos os comandos, e fornece o preenchimento automático com informações contextuais para cada comando.

11 – Kube-shell: shell para o CLI do Kubernetes
A linha de comando do Kubernetes é poderosa, mas como em qualquer aplicativo de linha de comando, escolher suas opções pode ser entediante. O Kube-shell envolve a linha de comando padrão do Kubernetes em um shell integrado que fornece auto-preenchimento e auto-sugestão de comandos comuns, incluindo sugestões fornecidas pelo servidor Kubernetes (por exemplo, para os nomes dos serviços). Ele também fornece uma função de histórico de comandos mais robusta, um vi-style editing mode e informações de contexto em execução para usuário, espaço de nomes, cluster e outros detalhes específicos da instalação.

12 – Kubespy: monitoramento em tempo real dos recursos do Kubernetes
O Kubespy, da  Pulumi, é uma ferramenta de diagnóstico que permite rastrear alterações em um recurso do Kubernetes em tempo real, fornecendo a você um tipo de painel de exibição de texto dos acontecimentos. Por exemplo, você pode observar as alterações no status de um pod à medida que ele é inicializado: a definição do pod sendo gravada no Etcd, o pod sendo programado para ser executado em um nó, o Kubelet no nó criando o pod e o pod sendo finalmente marcado como em execução. O Kubespy pode ser executado como um binário autônomo ou como um plug-in para o Kubectl.

13 – Kubernetes Ingress Controller para AWS
O Kubernetes fornece balanceamento de carga externo e serviços de rede para um cluster através de um serviço chamado Ingress. O Amazon Web Services fornece funcionalidade de balanceamento de carga, mas não associa automaticamente esses serviços às instalações do Kubernetes. O Kubernetes Ingress Controller para AWS fecha essa lacuna. O Ingress Controller gerencia os recursos da AWS para cada objeto do Ingress em um cluster, automaticamente, criando balanceadores de carga para novos recursos de ingresso e excluindo balanceadores de carga para os removidos, usando o AWS CloudFormation para garantir o estado consistente do cluster. Ele também gerencia automaticamente outros elementos usados ​​no cluster, como certificados SSL e Grupos do Auto Scaling do EC2.

14 – Kube-ops-view: painel para vários clusters do Kubernetes
O Kubernetes tem um painel útil para monitoramento geral, mas a comunidade do Kubernetes está experimentando outras formas de apresentar dados de maneira útil para o administrador Kubernetes. Kube-ops-view é um desses experimentos; ele fornece uma visão geral ampla de vários clusters Kubernetes, renderizados graficamente, para que se possa ver rapidamente a utilização da CPU e da memória e o status dos pods em um cluster. Note que não permite que você invoque nenhum comando; é estritamente para visualização. Mas as visualizações que ele oferece são impressionantes e eficientes, criadas por um monitor de parede em seu centro de operações.

15 – Skaffold: desenvolvimento iterativo para Kubernetes
O Skaffold  é uma das ferramentas do Google para o Kubernetes, uma maneira de realizar a implantação contínua de aplicativos do Kubernetes. Quando você faz alterações em seu código-fonte, o Skaffold detecta-as automaticamente, aciona o processo de criação e implantação e avisa se algum erro aparecer. O Skaffold é executado inteiramente no lado do cliente. Ele pode ser usado em um pipeline de CI/CD existente e se integra a algumas ferramentas de criação externas, principalmente o próprio Bazel do Google.

16 – Stern e Kubetail: log tailing para o Kubernetes
O Stern permite que você produza saída codificada por cor (conforme o tailcomando) a partir de pods e containers Kubernetes. É uma maneira rápida de enviar toda a saída de vários recursos para um único fluxo que pode ser lido de relance. Ao mesmo tempo, você tem uma visão rápida (a codificação de cores) para distinguir os fluxos.

O Kubetail  também agrega logs de vários pods em um único fluxo, codificando por cores diferentes pods e containers. Mas o Kubetail é um script de Bash, então requer nada mais que uma shell.

17 – Teresa: PaaS no Kubernetes
Teresa é um sistema de implementação de aplicativos que é executado como um simples PaaS no Kubernetes. Os usuários, organizados em equipes, podem implantar e gerenciar aplicativos pertencentes a eles. Isso torna um pouco mais fácil para as pessoas que confiam em um determinado aplicativo trabalhar com ele, sem ter que lidar diretamente com o Kubernetes.

18 – Tilt: Atualizações do fluxo dos containers em clusters Kubernetes
Desenvolvido pela Windmill Engineering, o  Tilt  monitora alterações em Dockerfiles em tempo real e, em seguida, implanta essas alterações de forma incremental nos containers apropriados em um cluster Kubernetes. Em essência, ele permite que os desenvolvedores atualizem um cluster ativo em tempo real, simplesmente atualizando um Dockerfile. O Tilt realiza a construção dentro do cluster; as únicas mudanças feitas são o código-fonte.

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.