Получить доступ к кластеру из консоли
В платформе Штурвал реализован модуль kubectl-shturval-plugin
, позволяющий получить доступ к кластерам без использования графического интерфейса платформы.
- Модуль обеспечивает прохождение аутентификации в платформе и выгрузку kubeconfigs всех кластеров, доступных пользователю, или kubeconfig одного выбранного кластера;
- С помощью модуля возможно формирование конфигурационного файла с заданными параметрами. Файл содержит набор требуемых параметров для аутентификации и загрузки kubeconfigs кластеров, что позволяет сократить время при повторной аутентификации. Конфигурационный файл также может быть загружен из графического интерфейса платформы “Штурвал”.
Когда загружены kubeconfigs, вы можете управлять доступными кластерами, используя команды утилиты kubectl.
План действий:
- Загрузить и установить модуль
kubectl-shturval-plugin
; - Подготовить конфигурационный файл и выполнить аутентификацию или получить доступ к кластерам без конфигурационного файла.
Установка модуля kubectl-shturval-plugin
- Чтобы начать работу с модулем, скачайте бинарный файл модуля по ссылке:
Если платформа развернута в закрытом окружении, вместо ссылки на скачивание используйте адрес ссылки на kubectl-shturval
на вашем зеркале, например, https://registry-link/kubectl-shturval-2.10.0.
- Проверьте расположение исполняемого файла kubectl.
Команда
which kubectl
Скриншот
По умолчанию исполняемый файл kubectl находится в /usr/local/bin/
. Если путь расположения исполняемого файла отличен от /usr/local/bin/
, используйте его в командах далее вместо /usr/local/bin/
.
- Разместите бинарный файл в одной директории с исполняемым файлу kubectl и обеспечьте выдачу права на выполнение. Если название бинарного файла отличается от
kubectl-shturval
, переименуйте его при перемещении.
Команда
sudo cp /downloads/kubectl-shturval-version /usr/local/bin/kubectl-shturval && sudo chmod +x /usr/local/bin/kubectl-shturval
Вместо /downloads/kubectl-shturval-version
укажите путь до файла kubectl-shturval-version
, загруженного на шаге 1.
Скриншот
- Убедитесь, что файл располагается в той же директории, что и исполняемый файл kubectl.
Команда
ls /usr/local/bin/ | grep kubectl-shturval
Скриншот
Команды и доступные параметры модуля
Команда | Описание |
---|---|
kubectl shturval login |
Обеспечивает прохождение аутентификации в платформе и выгрузку kubeconfigs кластеров, доступных пользователю, или kubeconfig одного кластера |
kubectl shturval login genconfig |
Формирует конфигурационный файл с заданными параметрами. Конфигурационный файл используется командой kubectl shturval login при получении доступа к кластерам |
Доступные параметры команды kubectl shturval login genconfig
Параметр | Обязательный | Описание |
---|---|---|
--auth-url [string] |
нет | URL-адрес сервера аутентификации Shturval |
--cacert [string] |
нет | Содержимое корневого доверенного сертификата |
--cacert-file [string] |
нет | Путь до корневого доверенного сертификата |
--client-id [string] |
нет | Идентификатор клиента для внешнего сервиса аутентификации. По умолчанию: backend |
--client-secret [string] |
нет | Secret клиента для внешнего сервиса аутентификации |
-n, --cluster-name [string] |
нет | Имя кластера для получения kubeconfig. Не указывается, если необходимо получить kubeconfigs всех доступных кластеров |
--config-path [string] |
нет | Путь до расположения конфигурационного файла shturval-login-plugin.yaml. По умолчанию: /root |
-i, --insecure |
нет | Признак проверки безопасности TLS соединения |
-k, --kubeconfig [string] |
нет | Путь расположения загруженных kubeconfigs. По умолчанию: /root/.kube/config |
-p, --password [string] |
нет | Пароль для подключения к серверу shturval-backend. Если пароль содержит специальные символы ($,<, >, *, &, ?, /,\ ), необходимо их экранировать с помощью одинарных кавычек. Например, --password='my$Password?' |
-s, --server-url [string] |
нет | URL shturval-backend сервера |
--ttl [string] |
нет | Время жизни токена. По умолчанию 24h |
-u, --username [string] |
нет | Имя пользователя для подключения к серверу shturval-backend |
-v, --version |
нет | Версия команды login |
Доступные параметры команды kubectl shturval login
Параметр | Обязательный | Описание |
---|---|---|
--auth-url [string] |
нет | URL-адрес сервера аутентификации Shturval |
--cacert [string] |
нет | Содержимое корневого доверенного сертификата |
--cacert-file [string] |
нет | Путь до корневого доверенного сертификата |
--client-id [string] |
нет | Идентификатор клиента для внешнего сервиса аутентификации. По умолчанию: backend |
--client-secret [string] |
нет | Secret клиента для внешнего сервиса аутентификации |
-n, --cluster-name [string] |
нет | Имя кластера для получения kubeconfig. Не указывается, если необходимо получить kubeconfigs всех кластеров |
--config-path [string] |
нет | Путь до расположения конфигурационного файла shturval-login-plugin.yaml. По умолчанию: /root |
-i, --insecure |
нет | Признак проверки безопасности TLS соединения |
-k, --kubeconfig [string] |
нет | Путь расположения загруженных kubeconfigs. По умолчанию: /root/.kube/config |
-p, --password [string] |
да, если нет конфигурационного файла или не задан пароль в нем, или файл загружен из интерфейса | Пароль для подключения к серверу shturval-backend. Если пароль содержит специальные символы ($,<, >, *, &, ?, /,\ ), необходимо их экранировать с помощью одинарных кавычек. Например, --password='my$Password?' |
-s, --server-url [string] |
да, если нет конфигурационного файла или не задан URL в нем | URL shturval-backend сервера |
--ttl [string] |
нет | Время жизни токена. По умолчанию 24h |
-u, --username [string] |
да, если нет конфигурационного файла или не задано имя пользователя в нем | Имя пользователя для подключения к серверу shturval-backend |
-v, --version |
нет | Версия команды login |
Пример вызова справки команды kubectl shturval login
kubectl shturval login -h
Скриншот
Примеры генерации конфигурационного файла
Для генерации конфигурационного файла запустите команду kubectl shturval login genconfig
, в которую необходимо подставить свои значения параметров.
1. Команда генерации конфигурационного файла без заданных параметров (только с дефолтными значениями)
kubectl shturval login genconfig
2. Команда генерации конфигурационного файла с параметрами учетной записи, URL shturval-backend сервера и без проверки безопасности TLS соединения
kubectl shturval login genconfig --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --insecure=true --client-secret=clientsecret
Вместо clientsecret
впишите значение ключа backend секрета auth-clients
. Он находится в неймспейсе shturval-backend
кластера управления.
Скриншот
Ваш конфигурационный файл с именем shturval-login-plugin.yaml
и заданными параметрами будет находится в директории /root
.
3. Команда генерации конфигурационного файла с параметрами учетной записи, URL shturval-backend сервера, загрузкой конфигурационного файла в заданную директорию и без проверки TLS соединения
kubectl shturval login genconfig --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --insecure=true --client-secret=clientsecret --config-path=/mydir
Вместо clientsecret
впишите значение ключа backend секрета auth-clients
. Он находится в неймспейсе shturval-backend
кластера управления.
4. Команда генерации конфигурационного файла с параметрами учетной записи URL shturval-backend сервера и c проверкой безопасности TLS соединения (задан корневой сертификат)
kubectl shturval login genconfig --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --client-secret=clientsecret --cacert=-----BEGIN CERTIFICATE-----Содержимое в Base64-----END CERTIFICATE-----
5. Команда генерации конфигурационного файла с проверкой безопасности TLS соединения (задан путь до корневого доверенного сертификата в параметре)
kubectl shturval login genconfig --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --client-secret=clientsecret --cacert-file=/downloads/ca-cert.pem
6. Команда генерации конфигурационного файла с измененными по умолчанию параметрами идентификатора клиента для внешнего сервиса аутентификации, URL-адреса сервера аутентификации и директории для загрузки kubeconfigs
kubectl shturval login genconfig --kubeconfig=/tmp/kube/config --auth-url=keycloak.apps.ip-XX-XX-XXX-XX.shturval.link --client-id=myclient
Примеры загрузки kubeconfigs доступных кластеров, когда сгенерирован конфигурационный файл
Для загрузки загрузки kubeconfigs доступных кластеров запустите команду kubectl shturval login
, в которую необходимо подставить свои значения параметров.
1. Команда загрузки kubeconfigs доступных кластеров, если конфигурационный файл был сконфигурирован без заданных параметров (только с дефолтными значениями)
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --insecure=true --client-secret=clientsecret
2. Команда загрузки kubeconfigs доступных кластеров, если конфигурационный файл был сконфигурирован без пароля пользователя, а остальные обязательные параметры для загрузки kubeconfigs доступных кластеров заданы в конфигурационном файле
kubectl shturval login --password='my$Password?'
3. Команда загрузки kubeconfigs доступных кластеров, если конфигурационный файл включает все обязательные параметры для загрузки kubeconfigs доступных кластеров
kubectl shturval login
Скриншот
4. Команда загрузки kubeconfigs доступных кластеров, если в конфигурационном файле заданы все обязательные параметры для загрузки kubeconfigs доступных кластеров и необходимо выполнить загрузку kubeconfigs с доступом другой учетной записи
kubectl shturval login --username=myName --password='my$Password?'
Примеры загрузки kubeconfigs кластеров без конфигурационного файла
Для загрузки загрузки kubeconfigs доступных кластеров запустите команду kubectl shturval login
, в которую необходимо подставить свои значения параметров.
1. Команда загрузки kubeconfigs кластеров с заданными обязательными параметрами учетной записи, URL shturval-backend сервера, секрета клиента для сервиса аутентификации и без проверки безопасности TLS соединения
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --insecure=true --client-secret=clientsecret
Где вместо myName
и my$Password?
укажите ваш логин и пароль, в server-url
задайте IP адрес shturval-backend сервера вместо XX-XX-XXX-XX
.
Скриншот
2. Команда загрузки kubeconfigs кластеров с заданными обязательными параметрами учетной записи, URL shturval-backend сервера, секрета клиента для сервиса аутентификации и включенной проверкой безопасности TLS соединения (задан корневой сертификат)
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --client-secret=clientsecret --cacert=-----BEGIN CERTIFICATE-----Содержимое в Base64-----END CERTIFICATE-----
3. Команда загрузки kubeconfigs кластеров с заданными обязательными параметрами учетной записи, URL shturval-backend сервера, секрета клиента для сервиса аутентификации и включенной проверкой безопасности TLS соединения (задан путь до корневого доверенного сертификата)
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --client-secret=clientsecret --cacert-file=/downloads/ca_cer.pem
Скриншот
4. Команда загрузки kubeconfigs кластеров с заданными обязательными параметрами, без проверки безопасности TLS соединения, с заданной директорией для загрузки kubeconfigs доступных кластеров
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --insecure=true --client-secret=clientsecret --kubeconfig=/tmp/kube/config
Скриншот
5. Команда загрузки kubeconfig одного кластера с заданными обязательными параметрами аутентификации, без проверки безопасности TLS соединения
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --client-secret=clientsecret --cluster-name=myclustername --insecure=true
Вместо myName
и myPassword?
укажите ваш логин и пароль, в server-url
задайте IP адрес shturval-backend сервера вместо XX-XX-XXX-XX
.
Скриншот
6. Команда загрузки kubeconfig одного кластера с заданными обязательными параметрами аутентификации, проверкой безопасности TLS соединения
kubectl shturval login --username=myName --password='my$Password?' --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --client-secret=clientsecret --cluster-name=myclustername --cacert-file=/downloads/ca_cer.pem
Скриншот
Подготовка конфигурационного файла и аутентификация
Из интерфейса командной строки
Когда модуль kubectl-shturval-plugin
установлен, вы можете сгенерировать конфигурационный файл с необходимым набором параметров. Для этого:
-
Запустите команду
kubectl shturval login genconfig
, в которую необходимо подставить свои значения параметров. -
Убедитесь, что конфигурационный файл подготовлен.
Команда
cat /root/shturval-login-plugin.yaml
Скриншот
- Выполните команду
kubectl shturval login
для загрузки kubeconfigs доступных кластеров, в которую подставьте свои значения параметров.
Обратите внимание! Данные параметров, которые вы укажете в команде kubectl shturval login
будут иметь приоритет перед значениями этих же параметров конфигурационного файла shturval-login-plugin.yaml
. При этом значения параметров конфигурационного файла не будут перезаписаны.
Из графического интерфейса для одного кластера
- Для скачивания конфигурационного файла перейдите в ваш кластер и нажмите стрелку справа от имени пользователя. Выберите Скачать config для shturval-login-plugin. Начнется загрузка файла
shturval-login-plugin.yaml
.
Скриншот
Пример shturval-login-plugin.yaml
auth-url: auth.apps.ip-XX-XX-XX-XX.shturval.link
client-id: backend
client-secret: qz86fkqkb
cacert: |
-----BEGIN CERTIFICATE-----
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
A1UEBhMCVVMxFjAUBgNpFQUWw==
-----END CERTIFICATE-----
username: username
cluster-name: clustername
kubeConfig: clustername.conf
server-url: back.apps.ip-XX-XX-XX-XX.shturval.link
Обратите внимание! В конфигурационном файле путь расположения загруженного kubeconfig кластера изменен. Kubeconfig кластера будет загружен в директорию, где выполняются команды и с именем, соответствующим названию кластеру.
- Поместите полученный конфигурационный файл в папку
/root
.
Команда
mv /downloads/shturval-login-plugin.yaml /root/shturval-login-plugin.yaml
Где /downloads/shturval-login-plugin.yaml
- путь до загруженного из графического интерфейса shturval-login-plugin.yaml
.
- Выполните команду для загрузки kubeconfig кластера, обязательно указав пароль вашей учетной записи в параметре
--password
.
Пример загрузки kubeconfig кластера со значениями загруженного конфигурационного файла
kubectl shturval login --password='my$Password?'
- Переместите kubeconfig кластера в папку
~/.kube
и переименуйте файл вconfig
.
Команда
mv /root/clustername.conf ~/.kube/config
Где /root/clustername.conf
- путь до kubeconfig кластера, загруженного на предыдущем шаге.
Из графического интерфейса для нескольких кластеров
Из графического интерфейса можно скачать конфигурационный файл, чтобы загрузить kubeconfigs всех доступных пользователю кластеров.
- На главной странице платформы “Штурвал” нажмите стрелку справа от имени пользователя и выберите Скачать config shturval-login-plugin для всех кластеров. Начнется загрузка файла
shturval-login-plugin.yaml
.
Скриншот
Пример shturval-login-plugin.yaml
auth-url: auth.apps.ip-XX-XX-XX-XX.shturval.link
client-id: backend
client-secret: qz86fkqkb
cacert: |
-----BEGIN CERTIFICATE-----
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
A1UEBhMCVVMxFjAUBgNpFQUWw==
-----END CERTIFICATE-----
username: username
kubeConfig: all-clusters.conf
server-url: back.apps.ip-XX-XX-XX-XX.shturval.link
Обратите внимание! В конфигурационном файле путь расположения загруженных kubeconfigs кластеров изменен. Kubeconfigs кластеров будут загружены в файл all-clusters.conf
директории, где выполняются команды.
- Поместите полученный конфигурационный файл в папку
/root
.
Команда
mv /downloads/shturval-login-plugin.yaml /root/shturval-login-plugin.yaml
Где /downloads/shturval-login-plugin.yaml
- путь до загруженного из графического интерфейса shturval-login-plugin.yaml
.
- Выполните команду для загрузки kubeconfigs кластеров, обязательно указав пароль учетной записи в параметре
--password
.
Пример загрузки kubeconfigs кластеров со значениями загруженного конфигурационного файла
kubectl shturval login --password='my$Password?'
- Переместите kubeconfigs кластеров в папку
~/.kube
и переименуйте файл вconfig
Команда
mv /root/all-clusters.conf ~/.kube/config
Где /root/all-clusters.conf
- путь до kubeconfigs кластеров.
Порядок действий для аутентификации без конфигурационного файла
Загрузка kubeconfigs кластеров
- Когда модуль
kubectl-shturval-plugin
установлен, выполните подключение к платформе с обязательными параметрами аутентификации. При необходимости сконфигурируйте дополнительные параметры и выполните командуkubectl shturval login
, в которую подставьте свои значения параметров.
В результате выполнения команды kubectl shturval login
:
- пройдена аутентификация в платформе;
- kubeconfigs всех доступных кластеров загружены в файл
config
директории/root/.kube
(если директория не была переопределена).
- Когда kubeconfigs загружены, получите список контекстов кластеров, которыми вы можете управлять.
Команда
kubectl config get-contexts
Скриншот
- Настройте контекст в kubectl для управления необходимым кластером.
Команда
kubectl config use-context context-name
Укажите вместо context-name
имя необходимого контекста.
Скриншот
- Убедитесь, что контекст верно настроен.
Команда
kubectl config current-context
Скриншот
Используйте команды kubectl
для управления кластером указанного контекста.
Загрузка kubeconfig одного кластера
Когда установлен модуль kubectl-shturval-plugin
, вы можете загрузить kubeconfig одного кластера. Для этого следуйте инструкции:
- Выполните подключение к платформе с обязательными параметрами аутентификации и заданным именем кластера в значении параметра
--cluster-name
. При необходимости сконфигурируйте дополнительные параметры, выполните командуkubectl shturval login
, в которую подставьте свои значения для параметров.
В результате выполнения команды kubectl shturval login
будет:
- пройдена аутентификация в платформе;
- kubeconfig указанного кластера загружен в файл config директории
/root/.kube
(если директория по умолчанию не была переопределена в параметре--kubeconfig
).
- Когда kubeconfig загружен, проверьте на какой контекст настроен kubectl.
Команда
kubectl config current-context
Используйте команды kubectl
для управления кластером текущего контекста.
Аутентификация с kubeconfig кластера
Когда вы скачали kubeconfig clustername.conf
кластера из графического интерфейса платформы “Штурвал”, выполните аутентификацию с kubeconfig в интерфейсе командной строки:
- Проверьте список файлов папки
~/.kube
.
- Если в папке нет файла
config
, то поместите скаченный kubeconfig в папку~/.kube
и переименуйте файл вconfig
. Проверьте расположение файлаconfig
.
Команда
# Поместить в ~/.kube и переименовать clustername.conf
mv /downloads/clustername.conf ~/.kube/config
# Проверить расположение config
ls ~/.kube/ | grep config
Где /downloads/clustername.conf
- путь до загруженного из графического интерфейса clustername.conf
.
- Если в
~/.kube
уже существует файлconfig
с kubeconfig от другого кластера, то выполните один из способов:
1 Способ
Перезапишите его данные новым kubeconfig кластера.
2 Способ
Экспортируйте переменную KUBECONFIG, чтобы указать путь до нового kubeconfig кластера. В этом случае данные kubeconfig другого кластера останутся в файле config
.
Команда обновления данных config
# Поместить в ~/.kube и переименовать clustername.conf
mv /downloads/clustername.conf ~/.kube/config
Где /downloads/clustername.conf
- путь до загруженного из графического интерфейса clustername.conf
.
Команда экспорта переменной
export KUBECONFIG=/root/.kube/clustername.conf
Где вместо /root/.kube/clustername.conf
укажите путь до kubeconfig кластера.
- Проверьте доступ к кластеру, используя команды
kubectl
для управления кластером.
Пример
# Тестовое подключение к кластеру
kubectl cluster-info
# Вывести список узлов кластера
kubectl get nodes
Если возникли ошибки доступа в кластер, вы можете найти способ решения проблемы в следующем разделе Действия в случае типовых ошибок доступа.
Действия в случае типовых ошибок доступа
1. Ошибка недействительности токена (access token)
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 кластера.
или
- с помощью модуля
kubectl-shturval-plugin
загрузите повторно kubeconfig кластера.
2. Некорректный сертификат в 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 кластера.
- Выполните шаги раздела Аутентификация с kubeconfig кластера.
или
- с помощью модуля
kubectl-shturval-plugin
загрузите повторно kubeconfig кластера.
3. Ошибка экспорта kubeconfig кластера
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
...
E1216 16:19:13.707804 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
. Если имя файла kubeconfig кластера отличное отconfig
, переименуйте файл kubeconfig кластера.
Команда
# Поместить в ~/.kube и переименовать clustername.conf
mv /downloads/clustername.conf ~/.kube/config
# Проверить расположение config
ls ~/.kube/ | grep config
Где /downloads/clustername.conf
- путь до расположения kubeconfig кластера.
4. Ошибка синхронизации времени
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
Решение:
- необходимо включить синхронизацию по протоколу Network Time Protocol (NTP). Перейдите к инструкции синхронизации времени для различных операционных систем (ОС) и выполните синхронизацию. Если в ОС установлен один из сервисов NTP: timesyncd, ntpd, Chrony, вы можете использовать команду
timedatectl
для настройки синхронизации времени.
Команда timedatectl
# Проверить запущен ли сервис NTP
timedatectl timesync-status
# Установить синхронизацию с сервисом NTP
timedatectl set-ntp on
# Проверить настройки даты и времени
timedatectl
Пример когда синхронизация времени включена
Local time: Tue 2024-12-17 13:07:44 MSK
Universal time: Tue 2024-12-17 10:07:44 UTC
RTC time: Tue 2024-12-17 10:07:43
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
5. Ошибка в работе OIDC
Данная ошибка может возникнуть в случаях:
- не валидного CA сертификата;
- недоступности кластера управления;
- отсутствия у пользователя необходимых прав на выполнение действий в кластере.
error: You must be logged in to the server (Unauthorized)
Действия:
- Получите логи контейнера kube-apiserver на каждом Master-узле, чтобы убедиться в валидности СА сертификата.
Команда получения логов контейнера kube-apiserver
crictl logs $(crictl ps | awk '/kube-apiserver/ {print $1}')
Пример ответа ошибки
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.apps.ip-xx-xx-xx-xx.shturval.link/.well-known/openid-configuration": tls: failed to verify certificate: x509: certificate signed by unknown authority
Решение:
- Если ошибка из-за СА сертификата, то получите валидный СА сертификат, добавьте данные сертификата на Master-узлы в
/etc/ssl/certs/oidc.crt
. СА сертификат содержится в Configmaproot-ca
неймспейсаcert-manager
в вашем кластере. При отсутсвии доступа к Configmaproot-ca
обратитесь за получением валидного СА сертифика к администратору кластера. - Если проблема не с СА сертификатом, обратитесь к администратору платформы для уточнения доступности кластера управления.
- Если сертифкат валидный и кластер управления доступен, то у вас недостаточно прав для действий в кластере. Запросите у администратора кластера расширение прав.
6. Отсутствие доступа к API-серверу
Данная ошибка может возникнуть в случае, когда API-сервер не работает, перезапускается или заюлокирован.
The connection to the server ХХХ.ХХХ.ХХХ.ХХХ:6443 was refused - did you specify the right host or port?
Действия:
- обратитесь к администратору платформы или кластера для выяснения причин перезапуска или отказа в работе API-сервера.