O kube-apiserver é o componente central do Control Plane. Todas as requisições passam por ele, incluindo kubectl, scheduler, controller-manager e kubelet.

Conceito Geral

  • API Server é o único componente que fala diretamente com o etcd
  • Valida e processa todas as requisições REST
  • Autentica usuários e autoriza ações (RBAC)
  • Se o API Server cai, o cluster fica inacessível (mas pods continuam rodando)
kubectl/Client
   ↓
kube-apiserver (porta 6443)
   ↓
Autenticação (certs/tokens)
   ↓
Autorização (RBAC)
   ↓
Admission Controllers
   ↓
etcd (persistência)
   ↓
Resposta ao cliente

Verificar Status do API Server

kubectl get componentstatuses
# ou
kubectl get cs

Logs do API Server

# Via journalctl (systemd)
journalctl -u kube-apiserver -f

# Via logs do container (kubeadm)
crictl logs $(crictl ps | grep kube-apiserver | awk '{print $1}')

# Via kubectl
kubectl logs -n kube-system kube-apiserver-master01

Verificar Certificados

# Validade dos certificados
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -dates

# Verificar todos os certificados
kubeadm certs check-expiration

Renovar Certificados

kubeadm certs renew all
systemctl restart kubelet

API Server não Inicia

# Verificar manifesto
cat /etc/kubernetes/manifests/kube-apiserver.yaml

# Verificar porta em uso
netstat -tulpn | grep 6443

# Testar conectividade com etcd
ETCDCTL_API=3 etcdctl endpoint health \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key

Audit Logs

# Habilitar audit no kube-apiserver.yaml
--audit-log-path=/var/log/kubernetes/audit.log
--audit-log-maxage=30
--audit-log-maxbackup=10
--audit-log-maxsize=100
--audit-policy-file=/etc/kubernetes/audit-policy.yaml

Métricas do API Server

kubectl top nodes
kubectl get --raw /metrics | grep apiserver