Orquestração de Containers (INTRODUÇÃO)

Orquestração de Containers (INTRODUÇÃO)

Kubernetes é uma plataforma de código aberto projetada para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em contêineres em grande escala.

Com o Kubernetes, você pode encapsular seus aplicativos em contêineres e implantá-los em um cluster de máquinas físicas e/ou virtuais, garantindo que seus aplicativos estejam sempre disponíveis e possam ser escalados conforme necessário. Ele faz isso através de um conjunto de recursos como balanceamento de carga, automação de implantação e recuperação automática de falhas.

O Kubernetes é altamente flexível e pode ser usado para executar uma ampla variedade de aplicativos, desde aplicativos da web simples até aplicativos empresariais complexos.

ARQUITETURA KUBERNETES

No alt text provided for this image

 A arquitetura do Kubernetes é baseada em um cluster que consiste em duas partes principais: o plano de controle e as máquinas de computação (ou nós). O plano de controle é responsável por gerenciar o estado geral do cluster e inclui componentes como o kube-apiserver, que expõe a API do Kubernetes; o kube-scheduler, que programa os pods nos nós apropriados; e o kube-controller-manager, que ajuda a garantir que o cluster esteja funcionando corretamente e de acordo com as especificações do usuário.

O Kubernetes (K8s) é composto por uma série de componentes, cada um com um propósito diferente.

As máquinas de um cluster são separadas em três tipos: node, etcd e master.

Node

O papel de um Node é executar os contêineres que encapsulam as aplicações sendo gerenciadas pelo K8s. Quando você faz o deploy de uma aplicação em um cluster, essa aplicação vai ser executada em um dos Nodes do cluster. O conjunto de Nodes forma o que é chamado de Workers.

etcd

O etcd é, na verdade, o nome da base de dados distribuída que é utilizada para armazenar tudo o que está acontecendo dentro do cluster, incluindo o estado da aplicação. Em ambientes de produção, um bom gerenciamento desses nós é essencial para garantir que o cluster esteja sempre disponível.

Master

Finalmente, o último tipo de nó é o que chamamos de Master. É nesse tipo de nó que os principais componentes do Kubernetes são executados, como o Scheduler, o qual tem a responsabilidade de controlar a alocação de recursos no cluster. O conjunto de nós Master forma o que pode ser considerado o cérebro de um cluster Kubernetes: o Control Plane.

Control Plane

Ele é responsável por gerenciar os principais componentes do sistema e garantir que tudo está funcionando de acordo com o estado desejado da aplicação. Para facilitar a representação desse estado, o K8s trabalha com uma abstração chamada de Object. Um Object representa parte do estado da aplicação e quando o seu estado atual não é o estado desejado, mudanças são aplicadas para que os dois estados se igualem novamente.

 Existem diversos tipos de Objects em um ambiente Kubernetes, mas alguns deles são essenciais para entender como um cluster funciona.

Pod

Na seção sobre aplicações cloud-native, uma das principais características é que essas aplicações utilizam contêineres para encapsular seus microsserviços. No entanto, quando se fala sobre aplicações sendo executadas em um cluster, não se fala sobre contêineres diretamente, mas sim sobre Pods.

Pods são a unidade básica de um um cluster. Elas encapsulam um ou mais contêineres de uma aplicação e representam um processo dentro do cluster. Quando o deploy de uma aplicação no K8s é realizado, cria-se um ou mais Pods.

No entanto, Pods são efêmeros, ou seja, eles são criados e destruídos de acordo com as necessidades do cluster.

Para garantir que o acesso a um microsserviço esteja sempre disponível, existe um Object chamado Service que encapsula uma ou mais Pods e é capaz de encontrá-las dinamicamente em qualquer Node do cluster.

Deployment

Esse tipo de Object gerencia um conjunto de réplicas de pods idênticos, oferecendo uma série de funcionalidades que automatizam todos aqueles passos de um cenário típico de desenvolvimento de software, com deploys manuais ou semi-automatizados de uma aplicação.

Utilizando Deployments, é possível descrever qual o estado desejado da nossa aplicação e um Deployment controller vai se encarregar de transformar o estado atual no estado desejado, caso eles sejam diferentes.

Além desses componentes principais, a arquitetura do Kubernetes também inclui outros Objects importantes como:

  • Services: para expor aplicativos em execução em um Pod
  • Ingress: para rotear o tráfego de rede externo para serviços dentro do cluster
  • Volumes: para permitir que os dados persistam além do ciclo de vida de um contêiner individual
  • Namespaces: abstração que permite dividir os recursos do cluster entre vários usuários.
  • ConfigMaps e Secrets: permitem armazenar e gerenciar dados sensíveis e de configuração separadamente do código do aplicativo.

Pods e Deployments e outros Objects são utilizados pelo K8s para representar diferentes aspectos do estado de uma aplicação. Esse estado pode ser alterado de duas formas: imperativa ou declarativa. A forma declarativa é considerada a mais ideal e utiliza arquivos no formato YAML que são enviados para a API.

A API do Kubernetes é a porta de entrada de um cluster, sendo utilizada tanto pela ferramenta de linha de comando kubectl, quanto pela interface web (Dashboard do Kubernetes).  

Entre para ver ou adicionar um comentário

Outros artigos de Ramon Risério

  • DevOps Essentials

    DevOps Essentials

    Um guia essencial para aprender sobre DevOps e seus principais conceitos. Este guia é para iniciantes que buscam uma…

    1 comentário
  • Tutorial de provisionamento de bucket S3 na AWS com Terraform

    Tutorial de provisionamento de bucket S3 na AWS com Terraform

    O Terraform é uma das principais ferramentas de infraestrutura como código (IaC), que, apesar do nome, permite…

  • Tutorial de Instalação do Terraform no AWS Cloud Shell

    Tutorial de Instalação do Terraform no AWS Cloud Shell

    Existem várias formas para instalar o Terraform, da Hashicorp, mas uma das maneiras mais fáceis é instalá-lo no AWS…

  • Atividade prática de Mineração de Dados utilizando Orange, Regressão Linear, Support Vector Regression e Árvore de Decisão

    Atividade prática de Mineração de Dados utilizando Orange, Regressão Linear, Support Vector Regression e Árvore de Decisão

    Introdução Abalone é um molusco marinho muito apreciado na culinária e também conhecido por suas belas conchas, que são…

  • Free AWS Customer Carbon Footprint Tool

    Free AWS Customer Carbon Footprint Tool

    A Ferramenta gratuita de Pegada de Carbono do Cliente da AWS é um painel que oferece uma visão geral das emissões de…

  • Árvore de Regressão

    Árvore de Regressão

    A Árvore de Regressão é um modelo de aprendizado de máquina que é utilizado para prever valores numéricos. Ela é…

  • Instalação de servidor Linux em máquina virtual no Windows (Tutorial)

    Instalação de servidor Linux em máquina virtual no Windows (Tutorial)

    Uma máquina virtual é útil para testar novos sistemas operacionais, aplicativos ou para criar um ambiente isolado para…

  • Aplicações do Power BI

    Aplicações do Power BI

    O Power BI é uma ferramenta de análise de dados da Microsoft que pode trazer grandes benefícios para pequenas e médias…

  • INSTALAÇÃO

    INSTALAÇÃO

    Existem diferentes formas de instalar e executar o Kubernetes. É possível criar um cluster Kubernetes em uma máquina…

  • MINIKUBE

    MINIKUBE

    Minikube é uma ferramenta que permite executar o Kubernetes localmente em seu computador pessoal (incluindo Windows…

Outras pessoas também visualizaram

Conferir tópicos