Pular para o conteúdo principal

Kube-ApiServer

O comando kubectl conversa com o Kube-APIServer e nada mais. Também poderíamos invocar as APIs diretamente com um comando POST sem o uso do kubectl, apesar de pouco utilizado é perfeitamente possível.

O Kube-APIServer está no centro de todas as atualizações do cluster.

  • Faz a autenticação do usuário.
  • Valida a requisição.
  • Recupera os dados.
  • Atualiza o ETCD (único que interage com o ETCD).
  • Kube-Controller-Manager, Kube-Scheduler e Kubelet utilizam o Kube-APIServer para fazer atualizações no cluster em suas respectivas áreas.

O Kube-APIServer assim como todos os componentes do Kubernetes é disponibilizado como binário.

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#client-binaries

Todos os componentes do cluster Kubernetes precisam saber onde os outros componentes estão. Existem diferentes métodos de autenticação, autorização, criptografia e segurança. Por isso existem tantas opções de configurações para esses binários.

Alt text

Os parâmetros passados ao Kube-APIServer dependem de como foi montado o cluster. Se usar uma ferramenta kubeadm para inicializar o cluster, o Kube-APIServer subirá como um pod estático no namespace kube-system. Usando outro método poderia ser diferente, como por exemplo subir como serviço do systemd nos nodes masters.

Alt text

Alt text

Alt text