cks

3.4 API Server (manifest estático)

Detalhamento da edição do manifest estático do kube-apiserver para o CKS.

O que é

Em clusters kubeadm, o kube-apiserver roda como Pod estático: o kubelet observa a pasta /etc/kubernetes/manifests/. Qualquer YAML colocado ali vira Pod; ao remover o arquivo, o Pod é encerrado. Por isso, editar o manifest diretamente é a forma de mudar argumentos do API server (ex.: desabilitar NodePort inseguro, configurar audit, etc.).

Documentação oficial

Por que fazer backup fora de manifests

Se você copiar o backup para dentro de /etc/kubernetes/manifests/, o kubelet cria um segundo Pod de API server, o que pode quebrar o cluster. Por isso o backup deve ficar fora dessa pasta (ex.: ~/kube-apiserver.yaml.bak).

cp /etc/kubernetes/manifests/kube-apiserver.yaml ~/kube-apiserver.yaml.bak

Remover NodePort inseguro (ex.: 31000)

O CIS e o kube-bench podem exigir que o API server não exponha um NodePort (ex.: 31000). Passos típicos:

  1. Backup (fora de manifests):
    cp /etc/kubernetes/manifests/kube-apiserver.yaml ~/kube-apiserver.yaml.bak
    
  2. Editar o manifest e remover a linha do NodePort, por exemplo: ```yaml

    Remover esta linha:

    • –kubernetes-service-node-port=31000 ``` Salvar o arquivo. O kubelet recarrega o manifest e recria o Pod do API server.
  3. Ajustar o Service (se existir um Service tipo NodePort para o API server):
    kubectl delete svc kubernetes -n default
    

    O Kubernetes recria automaticamente o Service kubernetes como ClusterIP (comportamento padrão).

Outras alterações comuns no API server

Dica para o exame

Sempre que o enunciado pedir “corrigir o API server” ou “remover NodePort”, lembre: backup fora de /etc/kubernetes/manifests/, editar o YAML, e se necessário kubectl delete svc kubernetes para o Service voltar a ClusterIP.