Recursos/White Papers

Tecnologia

15 ferramentas para domar implementações do Kubernetes

Aproveite esses projetos de terceiros para simplificar as definições de aplicativos Kubernetes, aprimorar o CLI e o monitoramento e facilitar as implantações na nuvem

Serdar Yegulalp, InfoWorld/EUA

Publicada em 05 de novembro de 2018 às 08h03

O Kubernetes tornou-se um modo padrão - muitos diriam o modo padrão - de implantar aplicativos em containers, 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 dos seus excessos sejam domados por dentro. Mas algumas pessoas não estão esperando obter formas mais fáceis de trabalhar, e arregaçando as mangas para desenvolver suas próprias soluções para muitos problemas comuns da tecnologia, principalmente quando em produção.

Aqui destacamos 10 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, até a integração com a AWS e o fornecimento de uma janela para vários clusters.

1 - Bitnami Cabin: painel do Kubernetes para iOS e Android
Nenhum aplicativo ou serviço Web moderno pode deixar de ter algum tipo de interface móvel. O Cabin fornece aos administradores 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 estar acessíveis a partir do Cabin, incluindo gráficos de Helm, escalonamento de implementações, leitura de registros de pod e acesso a aplicativos baseados na Web hospedados pelo Kubernetes.

2 - 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 de cabeça para escrever e outra dor de cabeça para manter, por isso é de se admirar que as pessoas recorram a ferramentas de terceiros para obter alívio. 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 homólogo completo do 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.

3 - Koki Short: manifestos gerenciáveis
Como o Kedge, acima, 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 curtas 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 Short são modulares, o que significa que detalhes de uma declaração Short podem ser reutilizados em outras declarações, de modo que muitos pods com elementos comuns possam ser definidos sucintamente.

4 - 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.

5 - Kubebox: terminal e Web console para o Kubernetes
O  Kubebox  oferece mais do que apenas uma shell para o Kubernetes e sua API. Fornece também exibições interativas de memória e utilização de CPU, listas de pods, registros em execução e editores de configuração. O melhor de tudo é que ele está disponível como um aplicativo independente para Linux, Windows e MacOS.

6 - 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 que termina aleatoriamente máquinas virtuais e containers em execução para “incentivar” os desenvolvedores a construírem sistemas mais resilientes. O Kube-monkey é uma implementação da mesma ideia básica para teste de estresse de clusters Kubernetes. Funciona matando aleatoriamente pods em um cluster específico, e pode ser ajustado para operar dentro de janelas de tempo específicas.

7 - Kube-ps1: prompt de comando inteligente
Não, Kube-ps1 não é um emulador Sony PlayStation para Kubernetes (mesmo que essa não deixe de ser uma ideia 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.

8 - Kube-prompt: cliente interativo do Kubernetes
Outra modificação mínima, mas útil, na interface de linha de comando (CLI) do Kubernetes, o Kube-prompt permite que você digite o que equivale a uma sessão de comando interativa com o cliente Kubernetes. O Kube-prompt poupa você de ter que digitar "kubectl" para prefixar todos os comandos, e fornece a função autocompletar com informações contextuais para cada comando.

9 - Kube-shell: Shell para a CLI do Kubernetes
A linha de comando do Kubernetes é poderosa, mas como em qualquer aplicativo de linha de comando, escolher as opções pode ser entediante. O Kube-shell envolve a linha de comando padrão do Kubernetes em uma shell integrada 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). Também oferece uma função de histórico de comandos mais robusta, um modo de edição vi-style e informações de contexto em execução, namespace, cluster e outros detalhes específicos da instalação.

kubernetes

10 - 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 um painel de exibição de 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.

11 - Kubernetes Ingress Controller para AWS
O Kubernetes fornece balanceamento de carga externo e serviços de rede para um cluster por meio de um serviço chamado Ingress. A Amazon Web Services fornece funcionalidade de balanceamento de carga, mas não associa automaticamente esses serviços às instalações do Kubernetes para o mesmo. 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, excluindo balanceadores de carga para os removidos, desenhando no AWS CloudFormation para garantir o estado consistente do cluster. Ele também gerencia automaticamente outros elementos usados ​​no cluster, como certificados SSL e EC2 Auto Scaling Groups.

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

13 - Skaffold: desenvolvimento iterativo para o 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 implementaçã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.

14 - Stern and Kubetail: log tailing para o Kubernetes
O Stern permite que você produza saída codificada por cor (conforme o comando "tail") a partir de pods e containers no Kubernetes. É uma maneira rápida de enviar 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 (o código de cores) dos diferentes fluxos. 

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

15 - Teresa: PaaS no Kubernetes
Teresa é um sistema de implementação de aplicativos que é executado como uma PaaS no Kubernetes. Os usuários, organizados em equipes, podem implantar e gerenciar aplicativos. 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.



Reportagens mais lidas

Acesse a comunidade da CIO

LinkedIn
A partir da comunidade no LinkedIn, a CIO promove a troca de informações entre os líderes de TI. Acesse aqui