Diferença entre docker e kubernetes

Embora muitos de nós desejem comparar o Kubernetes e o Docker, os dois sistemas realmente fornecem funções intimamente relacionadas, mas à beira-mar. Ambas as ferramentas oferecem amplos recursos para criar e gerenciar contêineres virtuais em escala, mas as maneiras como eles diferem significativamente.

Kubernetes

é um programa de armazenamento de contêiner de código aberto criado por equipes do Google e baseia sua visão de mundo de contêiner em como o Google se desenvolve dentro de seus muros em Mountain View. Embora ele forneça uma ferramenta útil, escalável e poderosa, o Kubernetes também recebe muita atenção, porque é um sistema intricado e, às vezes, excessivamente complicado. Se você quiser um exemplo do poder do Kubernetes, não procure além do lançamento do

Pokemon Go app

. Embora houvesse problemas, esse aplicativo é um excelente exemplo da capacidade do Kubernetes (e contêineres) de escalar rapidamente.

Docker

é uma plataforma flexível de armazenamento de contêineres que leva em consideração a usabilidade, o que deve ser esperado para um produto focado no consumidor. Embora você possa acessar e aprender o Docker gratuitamente com a versão da comunidade, também pode comprar assinaturas Enterprise que vêm com suas próprias vantagens.

O rápido aumento das ferramentas de contêineres de 2016-2018 levou a uma proliferação de plataformas que ajudam as empresas a agrupar melhor seus sistemas em segurança, escalabilidade e serviços. O Google lançou seu

Plataforma de serviços em nuvem

em julho de 2018 para competir com produtos similares oferecidos pela

Chapéu vermelho

,

AWS

,

VMWare

e Docker que usam o Kubernetes para executar sistemas em contêiner. Esses modelos de plataforma como serviço (PaaS), também denominados modelos de container como serviço (CaaS), tornam o acesso a serviços em contêineres orquestrados de forma rápida e fácil para empresas que procuram escalar o desenvolvimento por meio de contêineres sem construir a infraestrutura circundante do zero.

Comparar Kubernetes vs. Docker realmente se resume a comparar o Kubernetes ao produto Swarm do Docker. Os novos assinantes do Docker têm acesso imediato aos recursos do Swarm, enquanto as versões herdadas exigem uma alternância rápida para ativá-lo.

Instalação e Instalação

Uma das principais reclamações dos usuários sobre o Kubernetes é que ele usa uma configuração diferente para cada sistema operacional. Você pode usar os recursos online do Kubernetes para ajudá-lo a configurar sua área de trabalho, mas também deve se preparar para pesquisar bastante para criar ambientes personalizados que se afastam da implementação padrão. A configuração do Kubernetes também exige muito planejamento, pois você precisará definir seus nós antes de começar. Acrescente a isso algumas integrações manuais, e a instalação do Kubernetes pode parecer uma tarefa gigantesca.

O Docker Swarm usa a CLI do docker para executar todas as partes de seus programas. Com o Docker, você só precisará aprender esse conjunto de ferramentas para criar seus ambientes e configurações. Como o programa Swarm é executado no seu Docker atual, quase não há outra configuração além de optar pelo Swarm. A partir daí, você pode construir seus contêineres por meio de comandos conforme eles surgirem, ao contrário de como o Kubernetes exige que você mapeie seus clusters antes mesmo de começar.

Trabalhando nos dois sistemas

O Kubernetes pode ser executado sobre o Docker, mas requer que você conheça as especificações da interface da linha de comandos (CLI) para acessar os dados pela API. Você deve conhecer sua CLI do docker para navegar nessa estrutura e, em seguida, a CLI adicional do Kubernetes,

kubectl

, para executar esses programas. Vários desenvolvedores estão executando os contêineres em toda a sua rede? Eles devem se familiarizar com a CLI do Kubernetes se quiserem fazer alguma coisa nesses clusters.

O Docker Swarm será como trabalhar em outras ferramentas do Docker (como Compose). Você usará o mesmo

CLI do Docker

, e você pode até criar novos contêineres com um único comando. A velocidade e a variabilidade dessa ferramenta, juntamente com sua estrutura de comando fácil de usar, conferem ao Docker a vantagem da usabilidade. Enquanto o Kubernetes pode reinventar a roda, o Docker permite velocidade. A principal desvantagem de trabalhar no Docker? Se você deseja executar uma função e não pode basear-se na API atual, está preso.

Registro e Monitoramento

O Kubernetes suporta várias versões de registro e monitoramento quando os serviços são implantados no cluster:

  • Logs do Elasticsearch / Kibana (ELK) dentro do contêiner
  • Heapster / Grafana / Influx para monitoramento no contêiner
  • Integração na nuvem Sysdig

Por outro lado, o Docker suporta apenas o monitoramento com aplicativos de terceiros. O Docker recomenda usar

Reimann

para monitoramento, mas a API aberta facilita a conexão com muitos aplicativos. Os logs do Docker também podem ser enviados via ELK no cluster.

Tamanho importa

O tamanho e o número dos contêineres que você pode girar usado para definir a diferença na escolha entre Kubernetes e Docker, mas o lançamento de atualizações recentes do Docker fechou significativamente a lacuna. Agora, ambos os sistemas suportam 1.000 clusters de nó e até 30.000 contêineres. O Kubernetes pode ser um pouco difícil de prosseguir, mas, uma vez executado, ostenta que 99% das chamadas de API respondem dentro de um segundo. Depois de girar esses contêineres, você tem mais flexibilidade em relação ao que pode fazer com eles também.

Docker relatou um

teste independente de Kubernetes vs. Docker

em março de 2016. O estudo descobriu que o Docker podia girar o mesmo número de contêineres cinco vezes mais rápido que o Kubernetes. Isso se deve principalmente à complexidade da ferramenta Kubernetes.

Conclusões

Kubernetes vs. Docker não é uma comparação fácil. O elitista em mim luta contra o ex-agente de suporte ao cliente: um quer recomendar a tecnologia que tem raízes e capacidades mais frias, enquanto o outro só quer que as coisas funcionem. Devido ao recente lançamento dos sistemas PaaS e CaaS que simplificam o uso do Kubernetes, não é mais complicado ser de uso imediato para o desenvolvedor local. Minha recomendação? Use ambos. Aprenda o Kubernetes a orquestrar e o Docker a conter, e trabalhe mais rápido e com menos falhas do que nunca.

Para saber mais sobre contêiner e produtos relacionados, consulte nosso

gerenciamento de dispositivos móveis

Ferramenta de seleção de produtos.

Fonte:

Kubernetes vs. Docker: comparando plataformas de conteinerizaçãoUm guia completo para o Kubernetes & Docker - Hands On