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