Introdução ao Kubernetes para iniciantes

Ouvindo muito sobre Kubernetes, mas não tenho certeza do que eles são?


O que é o Kubernetes?

O Kubernetes é uma ferramenta de código aberto que cuida da orquestração de contêineres. Ele automatiza a implantação de contêineres, dimensionamento contínuo e desescalonamento, balanceamento de carga de contêineres etc..

Kubernetes GeekFlare

O Google desenvolveu inicialmente Kubernetes na linguagem de programação Go.

Atualmente, é líder de mercado na orquestração de contêineres. O Kubernetes é uma plataforma ideal para hospedar aplicativos de microsserviços que escalam dinamicamente. Quando você está trabalhando em um ambiente de produção, o Kubernetes é a plataforma mais preferida e segura para orquestração de contêineres..

Como em um ambiente de produção, você espera zero tempo de inatividade, seu cluster deve estar sempre em funcionamento.

Com o Google Cloud Platform (GCP), você pode iniciar o Kubernetes com apenas alguns cliques. É suportado por outros provedores de nuvem, também como AWS e Azure. E há várias plataformas gerenciadas Kubernetes disponíveis.

Por que o Kubernetes?

Antes, uma briga entre desenvolvedores e testadores era uma coisa comum.

Os ambientes costumavam ser diferentes para eles; o que funcionou no sistema do desenvolvedor não foi executado no sistema de testadores.

Agora que a maioria das organizações usa contêineres, os problemas que aparecem devido a diferenças no ambiente não ocorrem mais.

Mas organizar e executar vários contêineres também não é uma tarefa fácil. Quando você está trabalhando em aplicativos dinâmicos, aumentando ou diminuindo o tamanho, o número de contêineres é comum. Executar essas tarefas manualmente pode ser complexo e arriscado. Portanto, é necessária uma ferramenta de orquestração de contêiner, e é por isso que o Kubernetes é necessário.

Recursos do Kubernetes

Existem muitas, mas a seguir estão algumas das melhores.

# Embalagem automática de escaninhos

O Kubernetes empacota seu aplicativo e coloca automaticamente contêineres com base em seus requisitos e nos recursos disponíveis

# Descoberta de serviço e balanceamento de carga

O Kubernetes atribui automaticamente aos contêineres seus endereços IP e um nome DNS aos contêineres que executam operações lógicas. O recurso de balanceamento de carga também está presente entre o conjunto de contêineres.

# Orquestração de armazenamento

O Kubernetes monta automaticamente o sistema de armazenamento de sua escolha. Pode ser armazenamento local ou um provedor de nuvem pública, como a AWS.

# Autocura

Sempre que o Kubernetes perceber que um de seus contêineres falhou, ele também será reiniciado por conta própria e também criará um novo contêiner no lugar do travado. Caso seu nó falhe, os contêineres em execução nesse nó serão iniciados em outro nó em execução no cluster.

# Escala horizontal

Você pode dimensionar seus aplicativos para cima e para baixo rapidamente com um simples comando. O comando simples pode ser executado na CLI ou através do painel do Kubernetes. O dimensionamento automático também é possível, com base no uso da CPU, seus contêineres serão automaticamente aumentados ou reduzidos.

# Reversão e rollout automáticos

Sempre que houver uma atualização para seu aplicativo, o Kubernetes implementa progressivamente essas alterações e atualizações no aplicativo ou em suas configurações. Nem todas as instâncias são atualizadas ao mesmo tempo, garantindo assim a alta disponibilidade. Se algo der errado, o Kubernetes reverterá as alterações imediatamente.

Terminologias Kubernetes

Antes de sujar as mãos, você precisa conhecer algumas terminologias usadas regularmente no Kubernetes.

# Pod

Representa um ou mais contêineres em execução em um cluster.

# Serviço

Uma maneira abstrata de acessar o pod / aplicativo.

# Namespace

É usado para remover a colisão de nomes em um cluster. Ele suporta vários clusters virtuais no mesmo cluster físico.

# Nó

Máquina de trabalho Kubernetes.

# Grupo

Consistindo em um grupo de nós executando aplicativos em contêiner no Kubernetes.

# Anotação

Um rótulo para armazenar dados exigidos pelos recursos.

# Volume

É o diretório de dados que os contêineres no acesso ao pod.

# ReplicaSet

Várias réplicas de pods em execução.

# Rótulo

Dar um nome aos objetos Kubernetes para que possam ser identificados em todo o sistema.

# Kubelet

É um agente que é executado em cada nó e verifica se os contêineres estão sendo executados nos pods.

# Kubectl

Utilitário de linha de comando para interagir com o servidor da API Kubernetes.

# Proxy Kube

Proxy de rede que contém todas as regras de rede em cada nó no cluster.

Kubernetes e Docker

Agora você deve estar pensando como o Kubernetes é diferente do Docker. A frase Kubernetes x Docker pode ser enganosa.

O Docker é uma plataforma que empacota SO, bibliotecas e aplicativos dentro de um contêiner. Deixe-me dizer-lhe que o Docker faz a mesma coisa que deve fazer no Kubernetes. Mas quando você trabalha apenas com o Docker, tudo é manual. Você precisa iniciar e parar os contêineres manualmente. Mas com o Kubernetes, tudo é automatizado.

O Kubernetes pode agendar pods que possuem contêineres, e o Kubelet diz ao Docker para iniciar ou parar os contêineres. O Kubelet no Kubernetes é responsável por monitorar esses contêineres e coletar suas informações no nó mestre. Portanto, a diferença básica é que, em vez de os administradores dizerem ao Docker o que fazer, no Kubernetes, tudo é automatizado.

Há outra ferramenta usada para a orquestração de contêineres: o Docker Swarm. Então, qual é a diferença entre eles?

Kubernetes vs. Docker Swarm

KubernetesDocker Swarm
A instalação é complexaA instalação é simples
Maior comunidade de código abertoComunidade menor em comparação com Kubernetes
Pode orquestrar facilmente centenas de contêineresBom para orquestrar 10 a 20 contêineres
O Kubernetes Dashboard fornece GUISem GUI
Suporta escalonamento automáticoNão suporta escala automática
Suporta atualizações contínuas com reversão automáticaSuporta atualizações contínuas, mas não reversão automática
Registro e monitoramento disponíveis embutidosPrecisa de terceiros, como o ELK, para registro e monitoramento
Pode compartilhar volume com contêineres no mesmo podPode compartilhar volume com qualquer contêiner no cluster

Conclusão

Espero que agora você tenha um entendimento básico do que é o Kubernetes e como ele ajuda. Se você está no DevOps ou está pensando em entrar, sugiro que você faça isso fantástico curso Udemy para aprender Kubernetes.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map