Pular para o conteúdo principal

Kube Controller Manager

O Kube-Controller-Manager gerencia os vários controllers existentes no Kubernetes. Diferentes controllers podem ser instalados no Kubernetes pois a API do Kubernetes é extensível. Um exemplo é o HPA (Horizontal Pod Autoscaler) que não é built-in no Kubernetes, mas pode ser disponibilizado instalando o Metrics Server.

O objetivo do Kube-Controller-Manager é monitorar o cluster para atingir o estado desejado para pods e nodes tomando decisões para remediar a situação interagindo diretamente com o Kube-APIServer.

O Kube-Controller-Manager toma ações necessárias toda vez que:

  • Um node é adicionado ou removido do cluster ou até mesmo não consegue ser alcançado.
  • Um container para de executar ou não está saudável

Node Controller

Esse é o controller que monitora os nodes.

Por padrão, a cada 5 segundos ele confere o status dos nodes. Se não conseguir alcançar um node este é marcado como Unreachable, mas somente depois de 40 segundos, ou seja 8 tentativas, ele é marcado como NotReady. Depois de marcado como NotReady, o Kube-Controller-Manager espera 5 minutos para que o node fique disponível novamente, caso contrário ele remove os pods destinados ao node e tenta implantar em outro node disponível.

Abaixo temos algumas configurações que são passadas pra ajustar esses parâmetros.

--node-monitor-period duration (Default: 5s)
--node-monitor-grace-period duration (Default: 40s)

Replication Controller

Esse é o controller que garante que os pods estejam sempre disponíveis no cluster com o número de pods desejados para uma determinada aplicação. Se um pod morre, ele cria outro.


Como mencionado muitos controllers existem no cluster. Quaisquer que sejam os conceitos que temos no Kubernetes, existem um controller para ele.

O conjunto de controllers forma a inteligência por trás do Kubernetes.

Alt text

Assim como os outros componentes, este também pode ser instalado como serviço ou pod rodando nos masters.

Alt text

Alt text

Alt text

Alt text

Podemos ativar, desativar e alterar configurações usando os arquivos acima.