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.

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.


