Типовые ошибки доступа

На странице собраны типовые ошибки доступа к кластеру из консоли и действия, которые можно выполнить самостоятельно или передать администратору.

С чего начать

Сначала определите, каким способом вы подключались:

Краткая таблица ошибок

Проблема Что можно сделать самостоятельно Когда нужен администратор
Токен недействителен или истек Перескачать kubeconfig или повторно выполнить вход через плагин Если доступ не восстанавливается после повторного входа
Ошибка сертификата Перескачать kubeconfig или повторно получить его через плагин Если проблема связана с CA или сертификатами кластера
localhost:8080 вместо адреса кластера Проверить, куда сохранен kubeconfig и какое имя у файла Если корректный kubeconfig есть, но подключение все равно не работает
Ошибка синхронизации времени Включить NTP-синхронизацию Если вы не управляете настройками ОС
Unauthorized / OIDC Проверить права и сценарий входа Если нужно проверить CA, доступность кластера управления или права в кластере
API-сервер недоступен Проверить, что ошибка не связана с локальным kubeconfig Если API-сервер не отвечает

Недействительный токен

Пример ошибки:

E1202 11:06:00.839825 3042497 memcache.go:265]
couldn't get current server API group list: the server has asked for the client to provide credentials
...
error: You must be logged in to the server (the server has asked for the client to provide credentials)

Что можно сделать самостоятельно

Некорректный сертификат в kubeconfig

Такая ошибка возможна, если в kubeconfig содержится сертификат от другого кластера.

Пример ошибки:

Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")

Что можно сделать самостоятельно

Когда нужен администратор

Если повторная загрузка kubeconfig не помогла, причина может быть в доверенном CA-сертификате кластера.

kubectl пытается подключиться к localhost:8080

Пример ошибки:

E1216 16:19:13.703968    7159 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
...
The connection to the server localhost:8080 was refused - did you specify the right host or port?

Что можно сделать самостоятельно

Убедитесь, что kubeconfig сохранен в ~/.kube/config или явно указан через KUBECONFIG.

# Поместить в ~/.kube и переименовать clustername.conf
mv /downloads/clustername.conf ~/.kube/config
# Проверить расположение config
ls ~/.kube/ | grep config

Если вы используете отдельный kubeconfig, проверьте сценарий из страницы Получение kubeconfig кластера.

Ошибка синхронизации времени

Пример ошибки:

Unable to connect to the server: tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time 2023-12-16T16:30:28+03:00 is before 2024-12-16T09:14:38Z

Что можно сделать самостоятельно

Включите синхронизацию времени по NTP. В документации по узлам есть инструкция синхронизации времени.

Если в ОС уже установлен один из сервисов NTP, можно использовать:

# Проверить, запущен ли сервис NTP
timedatectl timesync-status
# Включить синхронизацию с сервисом NTP
timedatectl set-ntp on
# Проверить настройки даты и времени
timedatectl

Когда нужен администратор

Если вы не можете менять настройки времени в ОС самостоятельно.

Ошибка в работе OIDC или Unauthorized

Такая ошибка может быть связана:

  1. с невалидным CA-сертификатом;
  2. с недоступностью кластера управления;
  3. с отсутствием у пользователя необходимых прав на действия в кластере.

Пример ошибки:

error: You must be logged in to the server (Unauthorized)

Что можно сделать самостоятельно

Когда нужен администратор

Если ошибка связана не с локальным kubeconfig, администратору могут понадобиться дополнительные проверки.

Пример команды для получения логов kube-apiserver:

crictl logs $(crictl ps | awk '/kube-apiserver/ {print $1}')

Пример ошибки, которая указывает на проблему с CA:

E1216 14:14:01.209890       1 authentication.go:73] "Unable to authenticate the request" err="[invalid bearer token, oidc: authenticator not initialized]"
E1216 14:14:06.695653       1 oidc.go:304] oidc authenticator: initializing plugin: Get "https://auth.clustername.ip-xx-xx-xx-xx.shturval.link/.well-known/openid-configuration": tls: failed to verify certificate: x509: certificate signed by unknown authority

Если проблема в CA-сертификате, администратору нужно получить валидный сертификат и добавить его на Control Plane узлы в /etc/ssl/certs/oidc.crt. В документации указано, что CA-сертификат содержится в ConfigMap root-ca неймспейса cert-manager.

API-сервер недоступен

Пример ошибки:

The connection to the server ХХХ.ХХХ.ХХХ.ХХХ:6443 was refused - did you specify the right host or port?

Что можно сделать самостоятельно

  • убедиться, что используется корректный kubeconfig;
  • исключить ситуацию с localhost:8080, описанную выше;
  • повторно получить kubeconfig выбранным сценарием.

Когда нужен администратор

Если API-сервер не отвечает, нужно обратиться к администратору платформы или кластера для выяснения причин отказа или перезапуска.