Kubernetes: Introdução

Veja como começar a implantar e gerenciar aplicativos em contêineres

Uma introdução aos contêineres

Antes de começar a usar o Kubernetes, é importante entender como a conteinerização funciona.

Da mesma forma que empresas de logística usam contêineres físicos para isolar diferentes cargas para transporte em navios, trens, caminhões e aviões, as tecnologias de desenvolvimento de software cada vez mais usam um conceito chamado conteinerização.

Um único pacote de software – conhecido como um contêiner – agrupa o código de um aplicativo e os respectivos arquivos de configuração, bibliotecas e as dependências necessárias para a execução dele. Isso permite que desenvolvedores e profissionais de TI criem e implantem aplicativos com mais rapidez e segurança.

A conteinerização oferece os benefícios do isolamento, da portabilidade, da agilidade, da escalabilidade e do controle por todo o fluxo de trabalho do ciclo de vida de um aplicativo. Um contêiner, abstraído do sistema operacional host, é autônomo e se torna mais portátil – podendo ser executado em qualquer plataforma ou nuvem, de maneira uniforme e consistente em qualquer infraestrutura.

Componentes e conceitos do Kubernetes

O cluster

No nível mais amplo, o Kubernetes é organizado como um cluster de máquinas virtuais ou locais. Essas máquinas, chamadas de nós, compartilham recursos de computação, rede e armazenamento. Cada cluster tem um nó mestre conectado a um ou mais nós de trabalho. Os nós de trabalho são responsáveis por executar grupos de aplicativos e cargas de trabalho em contêiner, conhecidos como pods, e o nó mestre gerencia quais pods são executados em quais nós de trabalho.

Tenha uma visão geral do Kubernetes

O painel de controle

Para que o nó mestre se comunique com os nós de trabalho e para que uma pessoa se comunique com o nó mestre, o Kubernetes inclui vários objetos que, coletivamente, formam o painel de controle.

Desenvolvedores e operadores interagem com o cluster primariamente por meio do nó mestre usando o kubectl, uma interface de linha de comando que é instalada no SO local deles. Os comandos emitidos para o cluster por meio do kubectl são recebidos pelo kube-apiserver, a API do Kubernetes que reside no nó mestre. O kube-apiserver, comunica então as solicitações para o kube-controller-manager no nó mestre, que, por sua vez, é responsável por lidar com as operações de nó de trabalho. Comandos do nó mestre são recebidos pelo kubelet nos nós de trabalho.

Implantar aplicativos e cargas de trabalho

A próxima etapa para começar a usar o Kubernetes é implantar aplicativos e cargas de trabalho. O nó mestre mantém o estado atual do cluster e da configuração do Kubernetes no etcd, um banco de dados de repositório de chave-valor, a todo momento. Para executar os pods com seus aplicativos e cargas de trabalho em contêiner, você descreverá um novo estado desejado para o cluster na forma de um arquivo YAML. O kube-controller-manager pega o arquivo YAML e atribui ao kube-scheduler a tarefa de decidir quais nós de trabalho o aplicativo ou a carga de trabalho deve executar com base em restrições predeterminadas. Trabalhando de forma integrada com o kubelet de cada nó de trabalho, o kube-scheduler inicia os pods, inspeciona o estado das máquinas e é responsável, de modo geral, pelo gerenciamento de recursos.

Veja agora como o kube-scheduler funciona

Em uma implantação do Kubernetes, o estado desejado que você descreve se torna o estado atual no etcd, mas o estado anterior não é perdido. O Kubernetes dá suporte a reversões, à distribuição de atualizações e à pausa de distribuições. Além disso, as implantações usam os ReplicaSets em segundo plano para garantir que o número especificado de pods com configuração idêntica esteja em execução. Se acontecer de um ou mais pods falharem, o ReplicaSet os substituirá. Dessa forma, diz-se que o Kubernetes tem autorrecuperação.

Estruturando e protegendo ambientes do Kubernetes

Com seu aplicativo ou carga de trabalho implantada, a última etapa para começar a usar o Kubernetes é organizá-los – e determinar quem ou o que tem acesso a eles. Ao criar um namespace, um método de agrupamento dentro do Kubernetes, você permite que serviços, pods, controladores e volumes trabalhem juntos com facilidade e isola-os de outras partes do cluster. Da mesma forma, use o conceito de namespaces do Kubernetes para aplicar configurações consistentes aos recursos.

Veja como o gerenciamento de configuração funciona

Além disso, cada nó de trabalho contém um kube-proxy, que determina como os diferentes aspectos do cluster podem ser acessados de fora. Armazene informações confidenciais não públicas como tokens, certificados e senhas em segredos – outro objeto do Kubernetes – que são codificados até o runtime.

Veja como o gerenciamento de segredos funciona

Por último, especifique quem pode ver e interagir com quais partes do cluster – e como essas pessoas podem interagir – usando o RBAC (controle de acesso baseado em função).

Veja como o controle de acesso baseado em função funciona

Aprofunde-se nos detalhes técnicos do Kubernetes

Veja a documentação do Kubernetes

Implemente uma solução do Kubernetes totalmente gerenciado

Gerencie seu ambiente Kubernetes hospedado com o AKS (Serviço de Kubernetes do Azure). Implante e mantenha aplicativos em contêiner sem ter experiência com orquestração de contêineres. Provisione, atualize e dimensione recursos sob demanda – sem que seus aplicativos fiquem offline.

Início rápido do Kubernetes: entre em atividade em 50 dias

Use este guia passo a passo para ter uma introdução ao Kubernetes e ter experiência prática com os componentes, as funcionalidades e as soluções dessa plataforma.

O Kubernetes está pronto para você – experimente-o gratuitamente no Azure