kube-apiserver не запускается: отладка и решения

kube-apiserver — это сердце кластера Kubernetes.
Если он не работает, control plane становится недоступным: kubectl и контроллеры перестают функционировать.
Разберём основные причины и шаги диагностики.


Симптомы

  • Все команды kubectl возвращают ошибки соединения.
  • В kubectl get pods -n kube-system видно, что kube-apiserver в CrashLoopBackOff.
  • В логах встречаются ошибки: etcd connection refused, не удалось занять порт 6443, certificate expired.

Возможные причины и решения

1. Конфликт порта

По умолчанию API server слушает на 6443.
Если порт занят, процесс не запустится.

Решение:

sudo lsof -i :6443

Освободите порт или измените конфигурацию.

2. Ошибки в манифесте

В kubeadm-кластерах apiserver запускается как static pod (/etc/kubernetes/manifests/kube-apiserver.yaml). Неверные параметры не дадут процессу стартовать.

Решение: Проверить ключи --etcd-servers, --client-ca-file, and --kubelet-client-certificate.

3.Проблемы с ETCD

Без работающего etcd API server не может хранить состояние.

Решение:
Проверить состояние etcd:

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 endpoint health

4. Сертификаты

Просроченные или отсутствующие сертификаты приводят к падению.

Решение:
Проверить пути к сертификатам в манифесте kube-apiserver.yaml. При необходимости обновить через kubeadm:

kubeadm certs renew apiserver

5. Нехватка ресурсов

При нехватке CPU или памяти apiserver может быть убит системой.

Решение:
Check logs:

dmesg | grep -i kill

увеличить ресурсы.

Checklist

  1. Проверить логи API server
  2. Проверить манифесты /etc/kubernetes/manifests/kube-apiserver.yaml.
  3. Проверить доступность etcd.
  4. Убедиться в валидности сертификатов.
  5. Исключить конфликты портов.

Проверить /etc/kubernetes/manifests/kube-apiserver.yaml.

Итог

kube-apiserver — это точка входа в Kubernetes. Если он не запускается, кластер фактически “падает”. Основные причины: ошибки в конфигурации, проблемы с etcd, некорректные сертификаты. Пошаговая проверка поможет быстро восстановить доступность.