Skip to Content

O que é um cluster Kubernetes?

Os Blue threads cruzam e conectam vários nós em um fundo escuro, lembrando um diagrama de rede.

O Kubernetes revolucionou a maneira como as organizações gerenciam aplicativos em contêiner, fornecendo um sistema robusto para automatizar a implantação, o dimensionamento e as operações. No centro do Kubernetes está o conceito de cluster, essencial para orquestração eficiente de contêineres. Entender os clusters Kubernetes é essencial para qualquer organização que queira aproveitar as tecnologias de contêiner ao máximo.

Neste artigo, exploraremos o que é um cluster Kubernetes, seus componentes, como configurar um e as práticas recomendadas para gerenciamento.

O que é um cluster Kubernetes?

Um cluster Kubernetes é um grupo de máquinas (nós) que trabalham juntas para executar e gerenciar aplicativos em contêiner. O principal objetivo de um cluster Kubernetes é automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em contêiner. Isso se traduz em vários benefícios importantes para os usuários, como:

  • Escalabilidade aprimorada: Os clusters Kubernetes oferecem escalabilidade flexível. Você pode expandir ou reduzir facilmente seus aplicativos adicionando ou removendo nós conforme necessário. Por exemplo, você pode adicionar mais nós durante os períodos de pico de tráfego para lidar com o aumento da carga. Por outro lado, você pode reduzir seu cluster durante períodos de baixa demanda para economizar recursos.
  • Tolerância a falhas aprimorada: Os clusters Kubernetes foram desenvolvidos para estarem altamente disponíveis. Eles conseguem isso por meio da replicação, onde aplicativos críticos são executados em vários pods em diferentes nós. Se um nó falhar, o Kubernetes reiniciará automaticamente os contêineres com falha e os reagendará em nós saudáveis. Isso garante que, mesmo no caso de uma falha de nó, seu aplicativo permaneça disponível e operacional.
  • Gerenciamento simplificado: Os clusters Kubernetes simplificam o gerenciamento de aplicativos em contêiner. Em vez de gerenciar manualmente as configurações em cada nó individual, o Kubernetes usa arquivos de configuração declarativos gravados no YAML. Esses arquivos especificam o estado desejado do seu aplicativo, e o Kubernetes cuida para garantir que o estado seja mantido.

Componentes de um cluster Kubernetes

Um cluster Kubernetes é composto por dois componentes principais: o plano de controle e os nós do trabalhador. Cada um desses componentes desempenha um papel específico no gerenciamento do cluster e na execução de aplicativos em contêiner.

Plano de controle

O plano de controle atua como o cérebro do cluster Kubernetes, responsável por tomar decisões e emitir comandos para nós de funcionários. Ela consiste em vários componentes principais, incluindo:

  • Servidor API: O servidor API é o hub de comunicação central do cluster. Ela expõe a API Kubernetes, que serve como ponto de entrada para todas as tarefas administrativas e interações com o cluster. API Usuários e ferramentas como o kubectl interagem com o cluster por meio do servidor API para enviar comandos, gerenciar implantações e acessar informações do cluster.
  • etcd : etcd é um armazenamento de valor-chave distribuído altamente disponível que atua como a única fonte de verdade para o estado do cluster. Ele armazena informações essenciais sobre a configuração do cluster, incluindo definições de pod, detalhes de serviço e estado desejado das implantações. Esses dados são replicados em vários nós etc. para garantir consistência e tolerância a falhas.
  • Programador: O agendador é responsável por atribuir cargas de trabalho (pods) aos nós do trabalhador no cluster. Ele considera fatores como disponibilidade de recursos, capacidade de nós e regras antiafinidade de pod ao tomar decisões de agendamento. Por exemplo, o agendador pode espalhar pods em diferentes nós para melhorar a utilização de recursos ou priorizar pods com altos requisitos de recursos em nós com ampla capacidade.
  • Gerente de controladora: O gerenciador de controladora é o ponto central para gerenciar todos os controladores no cluster. Os controladores são responsáveis por monitorar continuamente o estado do cluster e tomar ações corretivas para garantir que o estado real do cluster corresponda ao estado desejado definido na configuração. O gerente de controladora gerencia vários controladores principais, cada um com uma finalidade específica.

Nós de trabalhadores

Os nós de trabalhador são as potências do cluster. São as máquinas que realmente executam aplicativos em contêiner. Cada nó de funcionário tem vários componentes responsáveis por gerenciar e executar contêineres:

  • Kubelet: O kubelet é um agente executado em cada nó de funcionário. Ele atua como representante do plano de controle no nó e é responsável pelo ciclo de vida dos pods atribuídos ao nó. O Kubelet garante que os contêineres dentro de um pod sejam baixados, configurados e executados de acordo com a especificação do pod. Ele também monitora a integridade dos contêineres, reinicia contêineres com falha e extrai segredos exigidos pelos contêineres para execução segura.

  • Kube-proxy: O Kube-proxy é um proxy de rede executado em cada nó de funcionário. Ela implementa políticas de rede definidas para o cluster e garante que os pods possam se comunicar entre si e com serviços externos. A Kube-proxy mantém regras de roteamento de rede e traduz nomes de serviços para endereços IP de pod, permitindo que pods descubram e se comuniquem com serviços dentro do cluster.

Ao trabalharem juntos, esses componentes no plano de controle e nos nós de trabalho permitem que o Kubernetes gerencie e orquestre aplicativos em contêiner de maneira eficaz em grande escala.

Configuração de um cluster Kubernetes

Você pode configurar um cluster Kubernetes por dois métodos principais: usando um serviço Kubernetes gerenciado ou implantando-o manualmente.

Serviços Kubernetes gerenciados

Provedores de nuvem como Google Cloud Platform (GCP) com Google Kubernetes Engine (GKE), Amazon Web Services (AWS) com Elastic Kubernetes Service (EKS) e Microsoft Azure com Azure Kubernetes Service (AKS) oferecem serviços Kubernetes gerenciados. Esses serviços cuidam das complexidades de provisionamento, configuração e gerenciamento da infraestrutura de cluster Kubernetes. Você simplesmente define a configuração desejada do cluster e o serviço lida com o trabalho pesado, permitindo que você se concentre na implantação de seus aplicativos em contêiner.

Implantação manual

Para mais controle e personalização, você pode implantar um cluster Kubernetes manualmente usando uma ferramenta como o kubeadm. Kubeadm é um kit de ferramentas para inicialização de um cluster Kubernetes. Esse método envolve a instalação do kubeadm em um nó mestre designado e do agente kubelet em todos os nós de trabalho no cluster. 

Configuração manual de um cluster Kubernetes

Pré-requisitos

  • Infraestrutura: Certifique-se de ter infraestrutura suficiente, como máquinas virtuais ou instâncias de nuvem.
  • Tempo de execução do contêiner: Instale um tempo de execução de contêiner como contêiner ou Docker em todos os nós.

Etapa 1: Instale o kubeadm, o kubelet e o kubectl

Em todas as máquinas (nós mestre e trabalhador), use o gerenciador de pacotes da sua distribuição para instalar as ferramentas kubeadm necessárias:

# Update package lists (replace 'your_package_manager' with your actual package manager like apt-get or yum)
 $ sudo your_package_manager update
 
 # Install kubeadm, kubelet, and kubectl
 $ sudo your_package_manager install -y kubeadm kubelet kubectl

Observação: Em alguns sistemas, pode ser necessária configuração adicional após a instalação. Consulte a documentação oficial do Kubernetes para obter detalhes específicos do sistema operacional escolhido.

Test drive do FlashArray

Veja como a Pure Storage simplifica consideravelmente blocos e arquivos em um ambiente de autoatendimento.

Experimente agora mesmo

Etapa 2: Inicialize o plano de controle (nó mestre)

Escolha uma de suas máquinas para atuar como nó mestre. Execute o seguinte comando no nó mestre para inicializar o plano de controle. Esse processo gera arquivos de configuração e fornece um comando de junção para nós de funcionário:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • kubeadm init: Esse comando inicializa o plano de controle no nó mestre.
  • --pod-rede-cidr=10.244.0.0/16: Esta opção especifica o intervalo CIDR para a rede pod. Você pode ajustar esse valor com base em suas necessidades de configuração de rede.

Depois de executar o comando de inicialização, o kubeadm fornecerá saída com um comando de junção para nós de funcionário. Anote este comando, pois você precisará dele na Etapa 5.

Etapa 3: Configurar kubectl

No nó mestre, copie o arquivo de configuração do administrador gerado para o diretório de configuração local do kubectl. Isso permite gerenciar o cluster usando comandos kubectl. O seguinte comando consegue isso:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

Etapa 4: Implante uma rede de pods

Um plug-in de rede pod permite a comunicação entre pods dentro do cluster. O Flannel é uma opção popular de rede pod. Você pode implantar o Flannel usando o seguinte comando no nó mestre:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Etapa 5: Junte-se aos nós dos trabalhadores no cluster

Em cada nó de trabalho, execute o comando de junção fornecido pelo kubeadm durante a etapa de inicialização no nó mestre (Etapa 2). Esse comando registra o nó do trabalhador com o plano de controle e o prepara para executar cargas de trabalho em contêiner. O comando de junção normalmente se parece com o seguinte:

$ sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • <master_ip_address>: substitua-o pelo endereço IP do nó mestre.
  • <token>: substitua isso pelo token gerado durante o processo de inicialização no nó mestre.
  • <hash>: substitua isso pelo hash de certificado CA do token de descoberta fornecido pela saída de comando kubeadm init.

Etapa 6: Verifique a integridade do cluster

Depois que todos os nós do trabalhador tiverem se juntado ao cluster, verifique a integridade do seu cluster usando comandos kubectl:

$ kubectl get pods -n kube-system
Evergreen One

Reduza riscos com o Evergreen//One™

Tempo de inatividade não é uma opção. Procure a Pure para garantir que você sempre esteja pronto para atender às demandas de capacidade.

Conheça o Evergreen//One

Gerenciamento de um cluster Kubernetes

O gerenciamento eficaz de um cluster Kubernetes é essencial para manter o desempenho e a confiabilidade. Isso inclui dimensionar, atualizar e atualizar os nós no cluster.

Dimensionamento do cluster

O Kubernetes oferece expansão horizontal, permitindo que você ajuste facilmente o número de nós do trabalhador com base nas demandas da carga de trabalho.

  1. Adição de nós (escala horizontal):
    1. Prepare o novo nó: Certifique-se de que o novo nó atenda aos requisitos de sistema recomendados para a versão Kubernetes desejada. Instale o software necessário, incluindo um tempo de execução de contêiner, como Docker ou contêiner, e o agente kubelet. Consulte a documentação oficial do Kubernetes para conhecer as etapas detalhadas de instalação com base em seu sistema operacional
    2. Junte o nó ao cluster: Use o comando de junção kubeadm no novo nó para ingressar no cluster existente. Você precisará das seguintes informações da configuração inicial do cluster:
      • Endereço IP do nó mestre: O endereço IP do seu nó mestre.
      • Junte-se ao token: Esse token foi gerado durante a inicialização do plano de controle e fornecido na saída.

Veja um exemplo de comando de junção kubeadm:

USD sudo kubeadm: <master_ip_address>6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

  • Substitua <master_ip_address> pelo endereço IP real do seu nó mestre.
  • Substitua <token> pelo token gerado durante a inicialização do plano de controle.
  • Substitua <hash> pelo hash do certificado CA do token de descoberta da saída de inicialização do plano de controle.

Remoção de nós (diminuição de escala):
Antes de remover um nó, é essencial drená-lo primeiro. A drenagem garante que não haja tempo de inatividade para seus aplicativos, removendo graciosamente pods do nó e programando-os em nós saudáveis.

Drene o nó : Use o comando de drenagem kubectl para drenar o nó que você pretende remover. Esse comando remove pods do nó enquanto permite que os DaemonSets (serviços essenciais do sistema) continuem sendo executados.

$ kubectl drain <node-name> --ignore-daemonsets

Substitua <node-name> pelo nome de host ou endereço IP do nó que deseja remover.

 

Exclua o nó : Depois de drenado, você pode remover com segurança o nó do cluster usando o comando excluir nó do kubectl.

 

$ kubectl delete node <node-name>

Substitua <node-name> pelo nome de host ou endereço IP do nó que deseja remover.

Você também pode executar outras operações de gerenciamento, como fazer upgrade do plano de controle, fazer upgrade do nó do trabalhador e fazer upgrades contínuos.

Manutenção do desempenho máximo: Monitoramento, registro e armazenamento

O monitoramento e o registro eficazes são essenciais para manter seu cluster Kubernetes saudável. Ferramentas como Prometheus e a ELK Stack oferecem insights profundos sobre a utilização de recursos, a integridade do pod e o desempenho geral, permitindo identificar e resolver proativamente os problemas antes que eles afetem os aplicativos. O Kubernetes também se integra a várias soluções de terceiros para flexibilidade.

O gerenciamento eficiente de dados é essencial para aplicativos stateful. A Portworx ® da Pure Storage oferece uma solução avançada e nativa de contêiner que se integra perfeitamente ao seu cluster Kubernetes.

A Portworx simplifica o armazenamento para suas cargas de trabalho ao:

  • Fornecimento de volumes persistentes: Garante que os dados persistam mesmo quando os pods são reiniciados ou reagendados.
  • Oferecendo proteção de dados e recuperação de desastres: Oferece snapshots e replicação, além de minimizar o tempo de inatividade durante incidentes.
  • Simplificação do gerenciamento: Fornece uma interface fácil de usar para provisionamento, monitoramento e gerenciamento de recursos de armazenamento.

Conclusão

Os clusters Kubernetes são fundamentais para a orquestração avançada de contêineres, oferecendo melhor escalabilidade, tolerância a falhas e gerenciamento simplificado de aplicativos. Entender os componentes, o processo de configuração e as práticas de gerenciamento dos clusters Kubernetes é essencial para aproveitar todo o seu potencial. A Portworx da Pure Storage se integra perfeitamente ao Kubernetes , fornecendo recursos robustos de armazenamento que aumentam a eficiência e a confiabilidade gerais das cargas de trabalho em contêiner.

02/2025
Deploying Portworx on Google Distributed Cloud Anthos with vSphere
This Portworx reference architecture contains a validated architecture and design model to deploy Portworx on Anthos running on vSphere.
Arquitetura de referência
28 pages

Confira os principais recursos e eventos

PURE//ACCELERATE® 2025
Registre-se para vivenciar a Pure//Accelerate.

Inspire-se, aprenda com os inovadores e aprimore suas habilidades para obter sucesso com os dados.

Veja o que está acontecendo
EXPOSIÇÕES ITINERANTES da PURE//ACCELERATE
Estamos chegando a uma cidade perto de você. Descubra onde.

Descubra o que a plataforma de armazenamento de dados mais avançada do mundo e uma nuvem de dados corporativa podem fazer por você.

Registre-se agora
VÍDEO
Assista: O valor de um Enterprise Data Cloud.

Charlie Giancarlo sobre o por que de gerenciar dados — e não o armazenamento — é o futuro. Descubra como uma abordagem unificada transforma as operações de TI corporativas.

Assista agora
RECURSO
O armazenamento legado não pode potencializar o futuro.

Cargas de trabalho avançadas exigem velocidade, segurança e escala compatíveis com a IA. Sua pilha está pronta?

Faça a avaliação
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.