#1 Líder Global em Resiliência de Dados
Orientações da Veeam para os clientes afetados pela atualização de conteúdo da CrowdStrike

O que é um cluster Kubernetes?

Um cluster Kubernetes é um grupo de recursos computacionais, como servidores ou máquinas virtuais, gerenciados pelo sistema de orquestração de contêineres do Kubernetes. O Kubernetes é uma plataforma de conteinerização de código aberto que torna simples e fácil implantar e escalar contêineres de aplicações. Ela fornece uma API fácil de usar para gerenciar contêineres em diferentes ambientes e infraestruturas. Um ambiente Kubernetes bem orquestrado também precisa de uma proteção de dados confiável. Se você já está aproveitando o Kubernetes ou pensando em fazer isso em um futuro próximo, as soluções backup nativas da Veeam podem ajudar a manter seus clusters e cargas de trabalho essenciais protegidos.

Componentes de um cluster Kubernetes

Um cluster Kubernetes consiste em dois tipos de nós: nós mestres e nós de trabalho. Os nós mestres são os componentes do plano de controle responsáveis por gerenciar o estado geral do cluster, como manter o estado desejado do cluster, agendar e implantar aplicações e gerenciar a rede do cluster. Em um cluster Kubernetes de alta disponibilidade, pode haver múltiplos nós mestres para tolerância a falhas.

Os nós de trabalho, por outro lado, são os recursos de computação onde as aplicações em contêineres reais são executadas. Eles hospedam pods, que contêm pelo menos um contêiner e são as menores unidades que você pode implantar no Kubernetes. Os nós de trabalho se comunicam com o nó mestre para garantir que tudo esteja sendo executado conforme o esperado.

O Kubernetes também tem dois tipos de componentes: Componentes do plano de controle e componentes do nó. Os componentes do plano de controle consistem no seguinte.

  • Kube-apiserver: O servidor de API é o mecanismo de controle primário do plano de controle do Kubernetes. Ele fornece acesso à API do Kubernetes e processa solicitações e operações para atualizar o estado do cluster.
  • Kube-scheduler: Esse componente é responsável por colocar pods em nós com base em requisitos de recursos, qualidade de serviço, requisitos e outras restrições. Ele leva em conta a capacidade do nó, regras de afinidade/antiafinidade e outros fatores para tomar decisões de agendamento.
  • Kube-controller-manager: Esse componente executa processos de controlador, que gerenciam o estado geral do cluster. Alguns exemplos de controladores incluem o Replication Controller, que garante que o número desejado de réplicas para uma aplicação especificada esteja em execução, e o Service Controller, que gerencia o balanceamento de carga para aplicações.
  • etcd: Esse é um storage de chave-valor distribuído e consistente usado pelo Kubernetes para armazenar todos os dados necessários para gerenciar o cluster, incluindo dados de configuração e o estado geral do sistema.

Os nós individuais, por outro lado, envolvem os componentes listados abaixo.

  • Kubelet: Esse agente é executado em cada nó de trabalho, garantindo que os contêineres estejam sendo executados em pods e relatando o status do nó e dos pods em execução para o plano de controle. Ele se comunica com o servidor de API para garantir que o estado desejado da aplicação seja mantido.
  • Kube-proxy: Esse componente é um proxy de rede que é executado em cada nó de trabalho e permite a abstração de serviços ao administrar as regras de rede e garantir que o tráfego seja encaminhado corretamente para os pods apropriados.
  • Runtime de contêineres: Este software é responsável pela execução de contêineres, como Docker, containerd ou CRI-O. O Kubernetes oferece suporte a diferentes runtimes de contêineres por meio da Interface de Runtime de Contêineres.

Ambas as categorias, combinadas em um cluster, trabalham juntas para fornecer uma plataforma consistente e confiável para implantar e gerenciar aplicações em contêineres. Mais especificamente, os clusters do Kubernetes fornecem a abstração e a automação necessárias para gerenciar aplicações em contêineres em escala, permitindo que os desenvolvedores se concentrem no código e as equipes de operações gerenciem a infraestrutura de forma mais eficiente.

Como você trabalha com um cluster Kubernetes?

O Kubernetes é configurado e mantido quase inteiramente com a API do Kubernetes. Essa API expõe a funcionalidade do sistema e permite o gerenciamento de clusters e nós programaticamente. Há várias formas de trabalhar com as APIs do Kubernetes, incluindo:

  • kubectl: A principal maneira de interagir com a API do Kubernetes é usando a ferramenta de linha de comando kubectl. Ele converte seus comandos em chamadas de API e os envia para o servidor de API.
  • Chamadas de API RESTful: Você pode fazer chamadas de API RESTful diretamente para o servidor de API do Kubernetes usando ferramentas como curl, wget ou qualquer linguagem de programação que suporte solicitações HTTP. Para autenticar e autorizar chamadas de API, você precisará usar as credenciais e tokens apropriados.
  • Bibliotecas de clientes: O Kubernetes fornece bibliotecas de clientes para várias linguagens de programação, como Go, Python, Java e JavaScript. Essas bibliotecas oferecem uma forma mais conveniente e idiomática de interagir com a API do Kubernetes no idioma de sua preferência.

No Kubernetes, o estado desejado é uma representação declarativa do estado esperado dos recursos dentro do cluster. Ao atualizar pods, implantações ou dispositivos, o estado é definido usando um arquivo de configuração YAML ou JSON. Então, o Kubernetes trabalha para reconciliar o estado real dos recursos com o especificado no arquivo de configuração.

O estado desejado inclui informações, como a imagem do contêiner, o número de réplicas para uma implantação e as variáveis de ambiente para pods. Ele também inclui o tipo de balanceamento de carga usado para um serviço. Os controladores do Kubernetes monitoram continuamente esses arquivos para fazer ajustes que combinem com o estado desejado do contêiner.

Essa abordagem declarativa oferece vários benefícios, incluindo a capacidade do Kubernetes de se autorreparar quando um pod trava ou um nó se torna inacessível. O Kubernetes toma automaticamente ações corretivas para restaurar o estado desejado. Ele também ajuda a manter os recursos do cluster alinhados com os fluxos de trabalho de controle de versão familiares, facilitando as reversões.

Como configurar um cluster Kubernetes

Embora possa parecer complicado no início, o Kubernetes fornece abstrações avançadas e uma API consistente que facilita muito a vida quando se trata de gerenciar aplicações em escala. Dito isso, configurar um cluster Kubernetes é único no que diz respeito à infraestrutura, então é útil obter uma visão geral do processo. No entanto, antes de prosseguir, é útil compreender os requisitos de implantação.

O Kubernetes pode ser executado em uma variedade de configurações de hardware e VM. Os requisitos exatos dependem da escala e das demandas de recursos de suas aplicações. No entanto, para um cluster mínimo, cada nó deve ter pelo menos 2 núcleos de CPU e 2 GB de RAM, uma conexão de rede estável e eficiente e storage suficiente na forma de storage local, um NAS ou uma opção de storage baseado na nuvem, como Amazon EBS, Google Persistent Disk e Azure Disk.

Configurar o cluster Kubernetes

Os clusters do Kubernetes podem ser implantados em praticamente qualquer ambiente, incluindo localmente, em uma nuvem pública ou usando um serviço gerenciado do Kubernetes, como o Google Kubernetes Engine, Amazon Elastic Kubernetes Service ou Azure Kubernetes Service. Usar o caminho gerenciado simplifica o processo, embora o Kubernetes autogerenciado ofereça mais controle sobre a infraestrutura.

A configuração requer a instalação do kubectl, que é a ferramenta de linha de comando que interage com a API do Kubernetes. Ele se conecta via HTTP, é instalado a partir de uma máquina local e configurado para se conectar a um cluster.

Definir componentes de aplicação

Aplicações em contêineres no Kubernetes são descritas usando arquivos de configuração declarativos YAML ou JSON, que definem o estado desejado dos componentes de aplicação. Os principais componentes incluem:

  • Pods: As menores unidades implantáveis que executam um ou mais contêineres
  • Serviços: Definir como expor sua aplicação à rede ou a outras partes do cluster
  • Implantações: Definir o estado desejado da aplicação e gerenciar atualizações contínuas
  • ConfigMaps e segredos: Armazene dados de configuração e informações confidenciais separadamente da imagem do contêiner

Implantar a aplicação

Os clusters são implantados usando o kubectl para aplicar os arquivos de configuração, o que instrui o Kubernetes a criar os recursos necessários para alcançar o estado desejado da sua aplicação. Enquanto isso, a configuração real requer um pouco de ajuste fino.

  • Configurar o plano de controle: Configure os nós mestres com os componentes necessários, incluindo kube-apiserver, etcd, kube-scheduler, kube-controller-manager. Em uma configuração altamente disponível, você precisará de vários nós mestres atrás de um balanceador de carga.
  • Configurar nós de trabalho: Configure os nós de trabalho com os componentes necessários, incluindo kubelet, kube-proxy e o runtime de contêineres. Talvez seja necessário configurar o runtime de contêineres, como Docker ou containerd, com base em sua preferência.
  • Configurar a rede: O Kubernetes suporta várias soluções de rede, como Calico, Flannel ou Weave. Escolha a que melhor se adapta às suas necessidades e siga a documentação do provedor para configuração.
  • Configurar o storage: Configure as categorias e provisões de storage de acordo com a solução de storage escolhida. Isso inclui a configuração de volumes locais, network-attached storage ou serviços de storage baseados em nuvem. Você também vai querer implantar uma solução de backup confiável.
  • Configurar o controle de acesso baseado em função: Defina funções e permissões para usuários e aplicações acessarem a API e os recursos do Kubernetes com segurança.
  • Configurar o monitoramento e o registro em log: Configure ferramentas de monitoramento, como Prometheus e Grafana, para coletar métricas e logs.
  • Configurar a segurança: Implemente as melhores práticas de segurança, como proteger o servidor de API do Kubernetes, criptografar segredos e habilitar políticas de rede para isolar espaços de nomes.

Lembre-se de que essas são etapas de alto nível para implantar e configurar um cluster Kubernetes. O processo exato varia, dependendo da opção de implantação escolhida, da infraestrutura e dos requisitos específicos.

Embora o Kubernetes tenha uma curva de aprendizado, suas abstrações e ferramentas poderosas facilitam o gerenciamento de aplicações em contêineres em escala. Com prática e experiência, você descobrirá que trabalhar com Kubernetes se torna mais intuitivo com o tempo. Há também muitos recursos disponíveis online para ajudar você a aprender e dominar essa poderosa tecnologia de conteinerização.

Gerenciamento de clusters Kubernetes

Para o monitoramento, o Kubernetes fornece ferramentas integradas que ajudam a manter a integridade e o desempenho do cluster. Enquanto isso, também há ferramentas e plataformas externas e de terceiros que fornecem monitoramento, registro e alertas avançados.

O Kubernetes facilita escalar aplicações com base na demanda, manual ou automaticamente, usando o Horizontal Pods Autoscaler, também conhecido como HPA. Você pode garantir a longevidade do desempenho da sua aplicação mantendo-o seguro e atualizado. Você pode executar atualizações progressivas da sua aplicação com zero tempo de inatividade atualizando a configuração de implantação.

Como começar com a Veeam

Embarcar em sua jornada com o Kubernetes pode parecer assustador, mas com a abordagem e os recursos certos, você pode rapidamente se tornar eficiente. Comece explorando soluções comuns e melhores práticas dentro do ecossistema do Kubernetes. Considere as necessidades específicas da sua empresa e como o Kubernetes, combinado com a solução de backup integrado da Veeam, pode ajudar a lidar com elas.

Quando estiver pronto para começar, conheça o Veeam Kasten, uma solução de backup nativo de última geração desenvolvida especificamente para o Kubernetes. Inscreva-se gratuitamente na versão da comunidade e comece a criar uma estratégia de backup hoje mesmo. Lembre-se, um ambiente Kubernetes bem orquestrado está incompleto sem uma proteção de dados confiável. Faça da Veeam sua parceira de confiança em sua aventura de conteinerização com o Kubernetes.

Vamos começar

Cinco razões

Assista a uma demonstração

Saiba como você pode obter resiliência de dados contra qualquer ameaça com a Veeam

Cinco razões

Entre em contato

Obtenha ajuda para selecionar a solução certa para a sua empresa

Cinco razões

Fóruns de P&D da Veeam

Obtenha ajuda para seus produtos e softwares da Veeam