Kubernetes

Copiar URL

O Kubernetes (também conhecido como k8s ou "kube") é 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.

Originalmente, o Kubernetes foi criado e desenvolvido por engenheiros do Google como parte do projeto Borg, sendo doado para a Cloud Native Computing Foundation (CNCF) em 2015. A Red Hat® foi uma das primeiras empresas a trabalhar com o Google no desenvolvimento do Kubernetes, antes mesmo do lançamento da plataforma. Foi assim que a Red Hat se tornou o segundo maior colaborador do projeto upstream dessa tecnologia.

Veja como escolher a plataforma Kubernetes ideal

Uma implantação ativa do Kubernetes é chamada de cluster, um grupo de hosts que executa containers Linux®. Ele é dividido em duas partes: o control plane e as máquinas de computação (ou nós).

A diagram showing the infrastructure of a Kubernetes cluster

Cada nó tem o próprio ambiente Linux, que pode ser físico ou uma máquina virtual. Os nós executam pods, formados por containers. 

O control plane é responsável por manter o estado desejado do cluster. Por exemplo, as aplicações que estão sendo executadas e as imagens de container que elas usam. As máquinas de computação executam as aplicações e cargas de trabalho. O control plane aceita comandos de um administrador (ou equipe de DevOps) e retransmite essas instruções às máquinas de computação.

Essa retransmissão é realizada em conjunto com vários serviços para decidir automaticamente qual nó é o mais adequado para a tarefa. Os serviços desacoplam as definições de trabalho dos pods e enviam as solicitações de serviço automaticamente para o pod certo, não importa para onde ele vá no cluster nem se ele foi substituído. Os recursos são alocados e os pods do nó atribuídos para cumprir a tarefa solicitada.

O Kubernetes é executado em um sistema operacional, como o Red Hat Enterprise Linux, e interage com pods de containers executados em nós.

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.

Com o uso desse tipo de infraestrutura, o modo de gerenciamento dos containers não é muito diferente. Sua atuação acontece em um nível superior, tornando-o mais refinado, sem a necessidade de microgerenciar cada container ou nó separadamente. 

Você escolhe o ambiente de execução do Kubernetes. Ele pode ser servidores bare-metal, máquinas virtuais (VMs), provedores de nuvem pública, nuvens privadas e híbridas. Uma das principais vantagens do Kubernetes é que ele funciona em vários tipos de infraestrutura.

Descubra com os líderes da Red Hat como os containers revolucionam a nuvem híbrida aberta.

Recursos da Red Hat

É possível usar o Docker como um runtime de container orquestrado pelo Kubernetes. Quando o Kubernetes programa um pod para um nó, o kubelet (o serviço que garante a execução de cada container) no nó instrui o Docker a iniciar os containers especificados.

Em seguida, o kubelet coleta o status dos containers do Docker e agrega essa informação no control plane continuamente. O Docker insere os containers nesse nó e os inicia e interrompe normalmente.

A diferença ao usar o Kubernetes com o Docker é que um sistema automatizado solicita que o Docker realize essas tarefas em todos os nós de todos os containers, em vez de o administrador fazer essas solicitações manualmente.

Pronto para começar a trabalhar com o Kubernetes? Neste curso sob demanda, você verá como implantar serviços e aplicações em container, testá-los usando o Docker e implantá-los em um cluster Kubernetes usando o Red Hat OpenShift®.

Confira o treinamento gratuito da Red Hat

Essa plataforma pode ajudar você a oferecer e gerenciar apps nativas em nuvem, legadas e em containers, além daquelas que estão sendo refatoradas em microsserviços. 

Para atender a novas necessidades empresariais, sua equipe de desenvolvimento precisa ser capaz de criar novos serviços e aplicações com agilidade. O ponto de partida é usar microsserviços em containers: esse é o segredo para acelerar o desenvolvimento nativo em nuvem e facilitar a transformação e a otimização das aplicações atuais. 

Desenvolvimento de aplicações com o Kubernetes

As apps de produção abrangem vários containers, que devem ser implantados em vários hosts do servidor. O Kubernetes oferece os recursos de orquestração e gerenciamento necessários para implantar containers em escala para essas cargas de trabalho.

Com a capacidade de orquestração do Kubernetes, é possível criar serviços de aplicações que abrangem múltiplos containers, programar o uso desses containers no cluster, escalá-los e gerenciar a integridade deles com o passar do tempo. O Kubernetes permite que você tome medidas para realmente aprimorar a segurança da TI.

Também é necessário integrar a plataforma aos serviços de rede, armazenamento, segurança, telemetria e outros para oferecer uma infraestrutura de containers abrangente.

Kubernetes explained - diagram

Depois de escalar para um ambiente de produção e várias aplicações, é claro que você precisará de vários containers funcionando juntos para ter os serviços individuais. 

Os containers Linux oferecem às apps baseadas em microsserviços uma unidade de implantação e um ambiente de execução autônomo ideais. Além disso, com os microsserviços em containers, é mais fácil orquestrar serviços, incluindo armazenamento, rede e segurança.

Isso multiplica substancialmente o número de containers no ambiente. À medida que eles se acumulam, a complexidade também aumenta.

O Kubernetes corrige vários problemas comuns que ocorrem com a proliferação de containers, organizando-os em "pods". Os pods adicionam uma camada de abstração aos containers agrupados. Assim, é mais fácil programar as cargas de trabalho e oferecer os serviços necessários a esses containers, como rede e armazenamento. 

Outros componentes do Kubernetes são úteis no balanceamento de carga entre os pods. Com isso, o número de containers em execução será suficiente para oferecer suporte às cargas de trabalho.

Com a implementação correta do Kubernetes e a ajuda de outros projetos open source, como Open vSwitch, OAuth e SELinux, as empresas podem orquestrar todas as partes da infraestrutura de containers.

16 etapas para criar um cluster Kubernetes

O Kubernetes é uma plataforma open source. Por isso, ele não conta com uma estrutura de suporte formal em que as empresas podem confiar totalmente. Problemas com a implantação do Kubernetes durante a execução no ambiente de produção podem representar uma grande dor de cabeça para você e para sua clientela.

Imagine o Kubernetes como o motor de um carro. Ele pode até funcionar sozinho, mas só teremos um carro se ele estiver conectado à transmissão, aos eixos e às rodas. Da mesma forma, instalar o Kubernetes não é o suficiente para ter uma plataforma a nível de ambiente de produção. O Kubernetes precisa de outros componentes para ser totalmente funcional. É necessário adicionar autenticação, rede, segurança, monitoramento, gerenciamento de logs e outras ferramentas. E é aí que entra o Red Hat OpenShift: ele é o carro completo. 

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

Com o Red Hat OpenShift Container Platform, os desenvolvedores podem criar novas apps em containers para 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 relevantes, de forma rápida e fácil. Se quiser implantar ou mover suas cargas de trabalho do Kubernetes para um serviço de nuvem gerenciado, o OpenShift também está disponível como plataforma Kubernetes nativa em nuvem na Amazon Web Services (AWS), no Microsoft Azure, Google Cloud, IBM Cloud e outros provedores. 

Com o OpenShift, você pode usar o Red Hat Advanced Cluster Management e o Red Hat Ansible® Automation Platform juntos para implantar e gerenciar clusters do Kubernetes em ambientes de nuvem pública, on-premise ou de edge computing com eficiência.

Veja como a Red Hat pode ajudar você a criar e automatizar ambientes híbridos

Caso de uso: criação de uma plataforma na nuvem para oferecer serviços bancários inovadores

A Emirates NBD, um dos maiores bancos nos Emirados Árabes, precisava de uma base escalável e resiliente para promover a inovação digital. Provisionamento lento e um ambiente de TI complexo foram obstáculos para o banco. Configurar um servidor levou dois meses, e fazer alterações em aplicações grandes e monolíticas levou mais de seis meses.

Com o Red Hat OpenShift Container Platform para gerenciamento, integração e orquestração de container, o banco criou a Sahab, a primeira nuvem privada executada em escala por um banco no Oriente Médio. A Sahab conta com aplicações, sistemas e outros recursos para desenvolvimento de ponta a ponta, desde o provisionamento até a produção, usando um modelo que funciona como um serviço. 

Com a nova plataforma, o Emirates NBD melhorou a colaboração entre suas equipes internas e com parceiros utilizadores de interfaces de programação de aplicações (APIs) e microsserviços. Com a adoção de práticas de desenvolvimento ágil e DevOps, o banco diminuiu os ciclos de atualização e lançamento de apps.

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

What is the Kubernetes Java client?

The Kubernetes Java client is a client library that enables the use of the Java programming language to interface with Kubernetes.

Kubernetes na AWS: comparação entre K8s autogerenciado e plataforma de aplicações gerenciada

Conheça as vantagens de usar o Kubernetes (K8s) na AWS e entenda as diferenças entre o Kubernetes autogerenciado e uma plataforma de aplicações gerenciada.

O que é hosted control plane?

Hosted control plane refere-se ao plano de gerenciamento desacoplado que permite o controle e gerenciamento consolidados dos principais componentes do plano de controle.

Containers: leitura recomendada

Produto em destaque

  • Red Hat OpenShift

    Uma plataforma unificada de desenvolvimento de aplicações que permite desenvolver, modernizar e implantar aplicações em escala na infraestrutura de nuvem híbrida de sua escolha.

Artigos relacionados