Jump to section

Aprenda o básico sobre o Kubernetes

Copiar URL

Com os containers, os desenvolvedores podem se concentrar em suas aplicações enquanto a equipe de operações cuida da infraestrutura. E a orquestração de containers permite gerenciar implantações por toda a empresa.

O Kubernetes é uma plataforma de orquestração de containers open source que automatiza grande parte dos processos manuais necessários para implantar, gerenciar e escalar aplicações em containers.

Com ele, é possível oferecer e gerenciar em escala aplicações conteinerizadas, legadas e nativas em nuvem, além daquelas que são refatoradas em microsserviços em diferentes ambientes, incluindo a nuvem privada e os principais provedores de nuvem pública, como Amazon Web Services (AWS), Google Cloud, IBM Cloud e Microsoft Azure.

O Kubernetes oferece uma plataforma para que você possa programar e executar containers em clusters de máquinas físicas ou virtuais. A arquitetura do Kubernetes divide um cluster em componentes que trabalham em conjunto para manter o estado definido dele.

O cluster do Kubernetes é um conjunto de máquinas de nós usado para executar aplicações em container. Ele é dividido em duas partes: o plano de controle e as máquinas de computação (ou nós). Cada nó tem o próprio ambiente Linux®, que pode ser físico ou uma máquina virtual. Os nós executam pods, que são formados por containers.

A API (interface de programação de aplicações) do Kubernetes é o front-end do plano de controle e o meio pelo qual os usuários interagem com os clusters desse serviço. O servidor da API determina se uma solicitação é válida e a processa.

A API é a interface usada para gerenciar, criar e configurar clusters do Kubernetes. É como os usuários, componentes externos e elementos dos clusters se comunicam uns com os outros.

Neste tutorial rápido sobre o Kubernetes, você aprende a criar um cluster e implantar uma aplicação.

Nós:
máquinas que realizam as tarefas solicitadas, atribuídas pelo plano de controle.

Pod:
um ou mais containers implantados em um nó. O pod é o menor e mais simples objeto do Kubernetes.

Serviço:
maneira de expor como serviço de rede uma aplicação executada em um conjunto de pods. Ele dissocia as definições de trabalho dos pods.

Kubectl:
interface de linha de comando usada para gerenciar o cluster do Kubernetes. Veja os comandos básicos do Helm e kubectl, simplificados para iniciantes.

kubelet:
pequena aplicação localizada em cada nó que se comunica com o plano de controle. O kubelet assegura que os containers estejam em execução em um pod.

Se quiser experimentar o Kubernetes, use o Minikube. Com essa ferramenta open source, você configura um cluster local do Kubernetes para poder testá-lo em um notebook.

O funcionamento do Kubernetes é baseado no estado real e no definido. Os objetos representam o estado de um cluster e informam ao Kubernetes como será a carga de trabalho.

Depois que você cria e define um objeto, o Kubernetes trabalha para assegurar que ele sempre exista.

Os controladores gerenciam ativamente o estado dos objetos e fazem as alterações necessárias para que o cluster vá do estado atual para o desejado.

Para especificar o estado desejado, os desenvolvedores ou administradores de sistemas usam arquivos YAML ou JSON enviados à API do Kubernetes. O controlador é utilizado pelo Kubernetes para analisar a diferença entre os estados definido e real no cluster.

O estado desejado do cluster do Kubernetes define quais aplicações ou outras cargas de trabalho serão executadas, as imagens que elas usarão, os recursos disponibilizados para elas e outros detalhes de configuração.

O etcd é um banco de dados de armazenamento de chave/valor que contém as informações e dados de configuração sobre o estado do cluster. O etcd, distribuído e tolerante a falhas, foi projetado para ser a principal fonte de informações sobre o cluster.

O Kubernetes gerencia o cluster automaticamente para que ele corresponda ao estado desejado. Para isso, os controladores geralmente enviam mensagens ao servidor de API que geram as mudanças necessárias. Além disso, alguns recursos do Kubernetes têm controladores integrados.

Vejamos um exemplo de como o Kubernetes gerencia o estado desejado. Imagine que você tenha implantado uma aplicação com o estado desejado "3". Ou seja, isso indica que três réplicas da aplicação precisam ser executadas.

Se um desses containers falhar, o conjunto de réplicas do Kubernetes perceberá que apenas duas réplicas estão em execução. Assim, ele adicionará mais uma para corresponder ao estado desejado.

Os conjuntos de réplicas são um tipo de controlador que assegura a execução de uma quantidade especificada de pods em um determinado momento.

As implantações Kubernetes são o método mais usado para gerenciar conjuntos de réplicas. Elas realizam atualizações declarativas nos pods para que você não precise gerenciá-los manualmente.

Você também pode usar o escalonamento automático para gerenciar a escala dos seus serviços com base na demanda do usuário. Ao especificar o estado desejado de uma aplicação ou serviço, você ainda pode definir o controlador para disponibilizar mais pods se a demanda aumentar.

Por exemplo, durante um período de alta demanda, o estado desejado da aplicação pode aumentar para 10, em vez de ficar na quantidade comum de três réplicas

Uma implantação do Kubernetes é um objeto de recurso que oferece atualizações declarativas para aplicações.

Uma implantação permite descrever o ciclo de vida das aplicações, incluindo quais imagens usar, o número de pods necessários e como devem ser feitas as atualizações.

A atualização manual de aplicações em container pode ser um processo demorado e tedioso. O uso de uma implantação do Kubernetes torna o processo automatizado e reproduzível.

As implantações são totalmente gerenciadas pelo back-end do Kubernetes, e todo o processo de atualização é executado no lado do servidor, sem interação do cliente.

Com um objeto de implantação do Kubernetes, você pode:

  • Implantar um pod ou conjunto de réplicas
  • Atualizar pods e conjuntos de réplicas
  • Reverter para versões anteriores da implantação
  • Escalar implantações
  • Pausar ou continuar uma implantação

Os padrões para Kubernetes são padrões de design para aplicações e serviços baseados em container.

Com o Kubernetes, os desenvolvedores gravam aplicações nativas em nuvem, além de oferecer ferramentas para a criação de aplicações e uma biblioteca de interfaces de programação de aplicações (APIs).

No entanto, o Kubernetes não oferece aos desenvolvedores e arquitetos diretrizes de como usar esses elementos para criar um sistema completo que atenda às necessidades e aos objetivos dos negócios.

Padrões são uma maneira de reutilizar arquiteturas. Em vez de criar a arquitetura do zero, use os padrões do Kubernetes atuais para que tudo funcione da maneira correta.

Os padrões são ferramentas necessárias para os desenvolvedores do Kubernetes e mostram como criar o sistema.

Um operador do Kubernetes é um método de empacotar, implantar e gerenciar aplicações do Kubernetes. Uma aplicação do Kubernetes é implantada e gerenciada usando a API do Kubernetes e o conjunto de ferramentas kubectl.

O operador é um controlador específico para aplicações que amplia as funcionalidades da API do Kubernetes para criar, configurar e gerenciar instâncias de aplicações complexas para um usuário do Kubernetes.

Saiba como criar um operador do Kubernetes em 10 minutos usando o Operator SDK.

O operador é baseado nos conceitos básicos de controlador e recursos do Kubernetes. No entanto, ele inclui o conhecimento específico de uma aplicação ou domínio para automatizar o ciclo de vida inteiro do software que gerencia.

Se quiser saber mais sobre os operadores do Kubernetes e por que eles são importantes, veja este artigo simples e direto.

Com os operadores, você grava códigos para automatizar tarefas não incluídas nas funcionalidades de automação básicas do Kubernetes. Para as equipes que seguem abordagens de DevOps ou de engenharia de confiabilidade de sites (SRE), os operadores foram desenvolvidos para a incorporação de práticas de SRE ao Kubernetes.

Saiba mais sobre como os operadores do Kubernetes funcionam, incluindo exemplos reais, e aprenda a criá-los com o Operator Framework e o kit de desenvolvimento de software.

Deploying Containerized Applications Tech Overview

Esta é uma série sob demanda que inclui aulas rápidas e demonstrações aprofundadas. Trata-se de uma introdução aos containers Linux e à tecnologia de orquestração de containers usando Docker, Kubernetes e Red Hat® OpenShift® Container Platform.

 

Red Hat OpenShift Administration

Neste curso, você aprenderá a instalar e administrar o Red Hat OpenShift Container Platform. É um curso hands-on baseado em laboratório que mostra como instalar, configurar e gerenciar clusters do OpenShift, bem como implantar amostras de aplicações para que você entenda melhor como os desenvolvedores usarão a plataforma.

Este curso é voltado para os desenvolvedores e oferece uma introdução à criação, implantação, escala e solução de problemas de aplicações no Red Hat OpenShift. À medida que o OpenShift e o Kubernetes continuam sendo amplamente adotados, é importante que os desenvolvedores entendam melhor como desenvolver, criar e implantar aplicações com uma plataforma de aplicações em container

O Red Hat OpenShift é uma solução Kubernetes para empresas. Ele oferece todos os elementos extras que tornam o Kubernetes potente e viável para as empresas, incluindo componentes de registro, rede, telemetria, segurança, automação e serviços.

Com o Red Hat OpenShift, os desenvolvedores podem criar novas aplicações em containers, hospedá-las e implantá-las na nuvem. Tudo isso com a escalabilidade, o controle e a orquestração necessários para transformar boas ideias em negócios valiosos de forma rápida e fácil.

Aproveite a avaliação gratuita por 60 dias para testar o Red Hat OpenShift e automatizar suas operações de container.

Leitura recomendada

ARTIGO

Containers x máquinas virtuais

Os containers Linux e as máquinas virtuais são ambientes de computação empacotados que combinam vários componentes de TI e os isolam do restante do sistema.

ARTIGO

O que é orquestração de containers?

A orquestração automatiza a implantação, o gerenciamento, a escala e a rede dos containers.

ARTIGO

O que é um container Linux?

Um container Linux é um conjunto de processos isolados do sistema. Esses processos são executados a partir de uma imagem distinta que oferece todos os arquivos necessários a eles.

Leia mais sobre containers

Soluções Red Hat

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

Conteúdo adicional

Datasheet

Red Hat OpenShift: tecnologia de container para nuvem híbrida

O Red Hat® OpenShift® é uma plataforma empresarial de containers Kubernetes que ajuda organizações em todo o mundo a criar, implantar, executar, gerenciar e proteger aplicações inovadoras em nuvens híbridas.

Datasheet

Red Hat OpenShift Kubernetes Engine

O Red Hat OpenShift Kubernetes Engine consiste em vários componentes essenciais e totalmente integrados para criação, implantação e gerenciamento de aplicações em containers.

Ebook

Transforme suas aplicações

Conheça as tendências atuais para a transformação de aplicações e como modernizar sua TI usando serviços em nuvem e plataformas de aplicações em nuvem híbrida.

Treinamentos Red Hat

Treinamento gratuito

Running Containers with Red Hat Technical Overview

Treinamento gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Treinamento gratuito

Developing Cloud-Native Applications with Microservices Architectures