Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker
Kubernetes e Docker estão em alta. Ambas as tecnologias têm raízes muito diferentes, mas se entrelaçaram nos últimos anos de uma forma que ninguém esperava que fizessem. As comunidades se uniram, os pacotes são portados entre todos os sistemas operacionais possíveis e sendo amplamente de código aberto, deram origem a uma infinidade de projetos de satélite e concorrentes.

Tudo isso pode ser opressor para qualquer novo usuário tentando entender este paradigma relativamente novo. Vamos discutir as principais diferenças entre o Kubernetes e o Docker, primeiro dando um mergulho mais profundo no que as tecnologias realmente significam. Se você tem alguma familiaridade com Docker ou K8 (abreviação de Kubernetes), pode pular e ler a seção TL; DR.

O que é Docker?

Docker é uma tecnologia de conteinerização. Você pode executar vários aplicativos isolados uns dos outros no mesmo sistema operacional sem qualquer necessidade de virtualização, mas todos os benefícios de um ambiente virtualizado. Pense nos contêineres do Docker como VMs realmente leves para Linux (também Windows, mas isso não é tão popular).

O Docker tem 3 componentes principais, primeiro o mecanismo Docker que é executado em segundo plano e gerencia os contêineres em execução e seu provisionamento. Ele expõe uma API REST que o cliente Docker consome e permite que os usuários interajam com o Docker e criem novos contêineres ou gerenciem os que estão em execução.

Docker, no entanto, é um aplicativo de sistema único. Ou seja, ele executa e gerencia contêineres em qualquer sistema em que esteja sendo executado.  Aplicativos enormes com muito tráfego e milhões de solicitações em todo o mundo precisam de mais de um servidor. É aí que entra o Kubernetes.

O que é Kubernetes?

O Kubernetes aproveita as vantagens das tecnologias de conteinerização, como o Docker, para executar várias réplicas do seu aplicativo em servidores e data centers em todo o mundo.

Uma das tecnologias de conteinerização que o Kubernetes usa é o Docker. O Kubernetes consiste em uma grande variedade de softwares diferentes para gerenciar seu cluster. Ele fornece um agente de gerenciamento kubeadm, que é executado em alguns nós mestres selecionados (nós são VPS ou servidores físicos) e, em seguida, há nós de trabalho com Docker instalado neles com um kubectl que se comunica com o mecanismo Docker para automatizar o processo de girar ou derrubar contêineres. Os agentes kubectl em execução em todos os nós de trabalho recebem ordens do nó mestre e fornecem feedback sobre o estado do aplicativo em execução em seu nó. É mais ou menos assim que uma instalação K8 normalmente funciona.

Você também pode agregar diferentes contêineres Docker relacionados em pacotes (chamados de pods). Por exemplo, você pode reunir o banco de dados SQL e os contêineres de cache Redis em um pod, já que deseja que o banco de dados e seu cache coexistam.

Da mesma forma, você pode expor pods a outros pods como serviços (também conhecidos como microsserviços) para ter 50 pods SQL / Redis expostos como o serviço de armazenamento de dados para o front-end de seu aplicativo e assim por diante. A vantagem que você obtém é que os 50 pods podem ser executados em vários data centers e, mesmo que alguns deles fiquem inativos, outros o farão.

Kubernetes é muito mais do que uma tecnologia. É uma maneira de raciocinar sobre a execução de seu software em um sistema distribuído.

Kubernetes sem Docker

Como você pode ver acima, o K8 depende muito de contêineres. Docker é apenas uma das muitas tecnologias de conteinerização que existem. Outros incluem rkt da CoreOS, LXC da Canonical, Jails no FreeBSD e Zones na Illumos e SmartOS. O Kubernetes poderia ser implementado com base em qualquer uma dessas tecnologias. Na verdade, funciona muito bem com o rkt da CoreOS.

No entanto, devido à popularidade do Docker, a comunidade e as organizações foram além para garantir que o Docker ofereça tudo e qualquer coisa que as especificações do Kubernetes solicitem. É por esse motivo que até projetos como Docker no macOS e PC são certificados pelo Kubernetes.

Docker sem Kubernetes

Da forma como o Kubernetes tem um dos melhores suportes ao usar o Docker, o próprio Docker depende muito do Kubernetes para implantar contêineres em grande escala. O Docker tem seu próprio sistema de gerenciamento e orquestração de contêineres, conhecido como Docker Swarm, que supostamente é uma alternativa ao Kubernetes.

Apesar de Docker Swarm ser uma tecnologia nativa no Docker, Kubernetes é o que as pessoas estão pedindo e as projeções de mercado atuais parecem indicar que K8 vai ganhar a maior fatia de mercado. O Docker deve seu sucesso em grande parte à sua simbiose com o Kubernetes.

TL; DR

Para encurtar a história, o Docker é uma tecnologia de contêinerização projetada para ser executada em um único computador. Kubernetes é uma tecnologia de gerenciamento que gerencia um grande número de contêineres em vários nós de computação.

Docker passa a ser uma das tecnologias mais adequadas para construir sua pilha K8 com. Você começa certificando-se de que seu aplicativo seja executado como um contêiner do docker, em seguida, o K8 garante que esse contêiner possa ser escalonado em todo o globo, se for necessário fazer isso no futuro.

Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...
Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...