ANÚNCIO

~/questoes/devops

Qual é o papel do scheduler no Kubernetes?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Questão 1 Não respondida

Qual é o papel do scheduler no Kubernetes?

Aula de referência O mínimo que você precisa saber sobre Kubernetes
Para fixar

O papel do Scheduler no Kubernetes

Conceito central

O scheduler é o componente do Kubernetes responsável por tomar decisões inteligentes sobre onde cada contêiner deve rodar dentro do cluster. Ele analisa os recursos disponíveis em cada nó e as políticas configuradas para fazer a melhor alocação possível, funcionando como um gerenciador de alocação de recursos.

Por que essa resposta faz sentido

O scheduler decide em qual nó um contêiner deve rodar considerando recursos disponíveis e políticas definidas. Ele analisa requisições de CPU, memória, afinidade e outras restrições para alocar contêineres de forma equilibrada e eficiente no cluster.

Armadilhas comuns

  • Confundir scheduler com kubelet: o scheduler decide onde rodar, o kubelet garante que rode.
  • Pensar que scheduler armazena dados: ele apenas toma decisões, não persiste estados (isso é função do etcd).
  • Achar que scheduler gerencia rede: ele aloca recursos, mas a rede é gerenciada por componentes específicos de networking.

Entenda as alternativas

A

Armazenar o estado das configurações é responsabilidade do etcd, um banco de dados distribuído que funciona como sistema de persistência do Kubernetes, não do scheduler.

B

Gerenciar a comunicação de rede entre nós é tarefa do componente de networking do Kubernetes, que inclui o kube-proxy e plugins de rede (CNI). O scheduler não trata de comunicação de rede.

C

Esta é a função principal do scheduler: avaliar recursos disponíveis (CPU, memória, disco) em cada nó e decidir inteligentemente onde alocar novos contêineres, garantindo eficiência e balanceamento.

D

Executar os contêineres é responsabilidade do kubelet (agente em cada nó worker) junto com o container runtime (Docker ou containerd). O scheduler apenas decide onde eles devem rodar.

Dica prática: Quando você criar um Deployment no Kubernetes, é o scheduler que recebe a requisição, analisa os nós disponíveis e coloca seus Pods rodando no melhor lugar. Se um nó não tiver memória suficiente, o scheduler automaticamente coloca o Pod em outro nó.

Revise pensando: Se você quer que um Pod rode em um nó específico por razões de latência ou especialização de hardware, o scheduler respeitará essa restrição ou ignorará?