Как получить доступ к кластеру из консоли

Способы доступа

Переход к управлению доступными кластерами в интерфейсе командной строки возможен одним из способов:

  • Аутентификация с kubeconfig кластера из графического интерфейса.

Примечание ‒ Далее приведены варианты с модулем kubectl-shturval-plugin Комплекса:

  • Аутентификация с загруженным конфигурационным файлом из графического интерфейса.
  • Аутентификация с подготовленным конфигурационным файлом в консоли (без графического интерфейса).
  • Аутентификация без конфигурационного файла в консоли (без графического интерфейса).

Аутентификация с kubeconfig кластера

Чтобы получить доступ к кластеру из консоли с загруженным kubeconfig из графического интерфейса, необходимо:

  1. в графическом интерфейсе кластера в правом верхнем углу экрана нажать стрелку рядом с именем пользователя и в выпадающем списке выбрать пункт "Скачать Kubeconfig" (рисунок 7). Загрузка начнется автоматически. Kubeconfig кластера будет загружен с именем clustername.conf;

Рисунок 7 ‒ Выбор скачивания kubeconfig

  1. после скачивания 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 от другого кластера, то выполнить один из способов:
    • Первый способ ‒ перезаписать его данные новым kubeconfig кластера;
    • Второй способ ‒ экспортировать переменную 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 кластера.

  1. проверить доступ к кластеру, используя команды kubectl для управления кластером.

Пример:

# Тестовое подключение к кластеру
kubectl cluster-info
# Вывести список узлов кластера
kubectl get nodes

Если возникли ошибки доступа в кластер, можно найти способ решения проблемы в п. Действия в случае типовых ошибок доступа.

Модуль доступа к кластерам (kubectl-shturval-plugin)

В Комплексе реализован модуль kubectl-shturval-plugin, позволяющий получить доступ к кластерам из интерфейса командной строки..

Модуль обеспечивает выгрузку kubeconfigs кластеров и прохождения аутентификации в Комплексе . Возможно загрузить:

  • kubeconfig для доступа ко всем кластерам, доступным пользователю;
  • kubeconfig для доступа к одному кластеру.

Когда загружены kubeconfigs кластеров, можго управлять доступными кластерами, используя команды утилиты kubectl.

При аутентификации с помощью модуля требуется указать набор параметров для подключения к Комплексу. Чтобы при подключении не вводить все требуемые параметры, можно сохранить их в конфигурационном файле. Если конфигурационный файл создан, то модуль будет подтягивать заданные значения параметров для аутентификации.

Конфигурационный файл (shturval-login-plugin.yaml) с требуемыми параметрами может быть получен или загружен одним из способов:

  • Сформирован с помощью модуля kubectl-shturval-plugin из интерфейса командной строки;
  • Загружен из графического интерфейса Комплекса.

Чтобы установить модуль, нужно выполнить шаги инструкции в п. Аутентификация с kubeconfig кластера.

Варианты аутентификации:

  • С загрузкой конфигурационного файла из графического интерфейса.
  • С конфигурационным файлом, подготовленным в консоли (без графического интерфейса).
  • Без конфигурационного файла и графического интерфейса.

Установка и команды модуля

Для установки модуля kubectl-shturval-plugin нужно выполнить следующие шаги:

  1. скачать бинарный файл модуля по ссылке:
kubectl-shturval-plugin # для Linux;
kubectl-shturval-plugin # для Windows;

Если Комплекс развернут в закрытом окружении (условно-закрытом), вместо ссылки на скачивание следует использовать адрес ссылки на kubectl-shturval на вашем зеркале, например https://adress-resgistry/repository/shturval_bin_public/kubectl-shturval/2.13.0/kubectl-shturval (только для Linux);

  1. проверить расположение исполняемого файла kubectl.

Пример команды для Linux (рисунок 8):

which kubectl

Рисунок 8 ‒ Проверка расположения файла kubectl для Linux

Пример команды для Windows (рисунок 9):

Get-ChildItem -Path C:\ "kubectl.exe" -Recurse -Force -ErrorAction SilentlyContinue

Рисунок 9 ‒ Проверка расположения файла kubectl для Windows

  1. разместить бинарный файл в одной директории с исполняемым файлом kubectl и обеспечить выдачу права на выполнение. Если название бинарного файла отличается от kubectl-shturval, переименовать при перемещении.

Пример команды для Linux:

sudo cp ВВЕДИТЕ-ПУТЬ-ДО-ЗАГРУЖЕННОГО-kubectl-shturval-version ВВЕДИТЕ-ДИРЕКТОРИЮ-ГДЕ-РАСПОЛАГАЕТСЯ-kubectl-shturval && sudo chmod +x ВВЕДИТЕ-ДИРЕКТОРИЮ-ГДЕ-РАСПОЛАГАЕТСЯ-kubectl-shturval

Пример команды для Windows:

cp ВВЕДИТЕ-ПУТЬ-ДО-ЗАГРУЖЕННОГО-kubectl-shturval.exe ВВЕДИТЕ-ДИРЕКТОРИЮ-ГДЕ-РАСПОЛАГАЕТСЯ-kubectl.exe
  1. убедиться, что файл располагается в той же директории, что и исполняемый файл kubectl (рисунок 11).

Пример команды для Linux:

ls ВВЕДИТЕ-ДИРЕКТОРИЮ-ГДЕ-РАСПОЛАГАЕТСЯ-kubectl | grep kubectl-shturval

Пример команды для Windows:

Test-Path -PathType Leaf -Path 'ВВЕДИТЕ-ДИРЕКТОРИЮ-ГДЕ-РАСПОЛАГАЕТСЯ-kubectl.exe\kubectl-shturval.exe'

Команды

Команды и доступные параметры модуля приведены в таблице 9.

Пример вызова справки команды kubectl shturval login (рисунок 10):

kubectl shturval login -h

Рисунок 10 ‒ Результат выполнения команды

Аутентификация с модулем

С конфигурационным файлом из графического интерфейса

В графическом интерфейсе РОСА Кубис для модуля kubectl-shturval-plugin можно загрузить конфигурационный файл:

  • настроенный на загрузку всех kubeconfigs кластеров, доступных пользователю;
  • настроенный на загрузку kubeconfig одного кластера, доступного пользователю.

Доступ к одному кластеру

Когда установлен модуль доступа к кластерам kubectl-shturval-plugin, для получения доступа к кластеру из консоли:

  1. перейти в графический интерфейсе кластера и нажать стрелку справа от имени пользователя, выбрать "Скачать config для shturval-login-plugin": начнется загрузка файла shturval-login-plugin.yaml (рисунок 11).

Рисунок 11 ‒ Скачивание config для shturval-login-plugin

Пример shturval-login-plugin.yaml:

auth-url: shturval.clustername.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: shturval.clustername.ip-XX-XX-XX-XX.shturval.link

Важно ‒ В конфигурационном файле путь расположения загруженного kubeconfig кластера изменен. Kubeconfig кластера будет загружен в директорию, где выполняются команды, и с именем, соответствующим названию кластеру.

  1. перейти в интерфейс командной строки и поместить полученный конфигурационный файл в директорию домашнего каталога пользователя (например, для Linux ‒ /root).

Пример команды:

mv ВВЕДИТЕ-ПУТЬ-ДО-ЗАГРУЖЕННОГО-shturval-login-plugin.yaml ПАПКА-ДОМАШНЕГО-КАТАЛОГА-ПОЛЬЗОВАТЕЛЯ/shturval-login-plugin.yaml
  1. выполнить команду для загрузки kubeconfig кластера. Пароль вашей учетной записи будет запрошен в интерактивном режиме.

Пример загрузки kubeconfig кластера со значениями загруженного конфигурационного файла:

kubectl shturval login
  1. переместить kubeconfig кластера в папку ~/.kube и переименовать файл в config.

Команда:

mv ВВЕДИТЕ-ПУТЬ-ДО-clustername.conf ~/.kube/config

Когда загружены kubeconfig кластера, для управления можно использовать команды утилиты kubectl.

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

Доступ ко всем доступным пользователю кластерам

Когда установлен модуль доступа к кластерам kubectl-shturval-plugin, для получения доступа к кластерам из консоли нужно:

  1. в графическом интерфейсе на главной странице Комплекса нажать стрелку справа от имени пользователя и выбрать "Скачать config shturval-login-plugin для всех кластеров" (рисунок 12): начнется загрузка файла shturval-login-plugin.yaml.

Рисунок 12 ‒ Скачивание config для shturval-login-plugin

Пример shturval-login-plugin.yaml:

auth-url: shturval.clustername.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: shturval.clustername.ip-XX-XX-XX-XX.shturval.link

Важно ‒ В конфигурационном файле путь расположения загруженных kubeconfigs кластеров изменен. Kubeconfigs кластеров будут загружены в файл all-clusters.conf директории, где выполняются команды.

  1. перейти в интерфейс командной строки и поместить полученный конфигурационный файл в директорию домашнего каталога пользователя (например, для Linux ‒ /root).

Пример команды:

mv ВВЕДИТЕ-ПУТЬ-ДО-ЗАГРУЖЕННОГО-shturval-login-plugin.yaml ПАПКА-ДОМАШНЕГО-КАТАЛОГА-ПОЛЬЗОВАТЕЛЯ/shturval-login-plugin.yaml
  1. выполнить команду для загрузки kubeconfigs кластеров. Пароль вашей учетной записи будет запрошен в интерактивном режиме.

Пример загрузки kubeconfigs кластеров со значениями загруженного конфигурационного файла:

kubectl shturval login
  1. переместить kubeconfigs кластеров в папку ~/.kube и переименовать файл в config.

Пример команды:

mv ВВЕДИТЕ-ПУТЬ-ДО-all-clusters.conf ~/.kube/config

Когда загружены kubeconfigs кластеров, можно управлять доступными кластерами, используя команды утилиты kubectl.

С конфигурационным файлом из консоли

После установки модуля kubectl-shturval-plugin можно сгенерировать конфигурационный файл с необходимым набором параметров. Для этого в интерфейсе командной строки нужно:

  1. запустить команду kubectl shturval login genconfig, в которую необходимо подставить свои значения параметров (таблица 10).
  1. убедиться, что конфигурационный файл подготовлен.

Пример команды (рисунок 13):

Рисунок 13 ‒ Подготовка конфигурационного файла

cat ВВЕДИТЕ-ПУТЬ-ДО-shturval-login-plugin.yaml
  1. выполнить команду kubectl shturval login для загрузки kubeconfigs доступных кластеров, в которую подставить свои значения параметров (таблица 11).

Важно:

  • Данные параметров, которые указаны в команде kubectl shturval login будут иметь приоритет перед значениями этих же параметров конфигурационного файла shturval-login-plugin.yaml. При этом значения параметров конфигурационного файла не будут перезаписаны.
  • После вызова команды без пароля для подключения (параметр -p / --password) он будет запрошен в интерактивном режиме.
  • Когда загружены kubeconfigs кластеров, можно управлять доступными кластерами, используя команды утилиты kubectl.

Если возникли ошибки доступа в кластер, можно найти способ решения проблемы в п. Действия в случае типовых ошибок доступа.

Примеры генерации конфигурационного файла

Для генерации конфигурационного файла нужно запустить команду kubectl shturval login genconfig, в которую необходимо подставить свои значения параметров.

  • Команда генерации конфигурационного файла без заданных параметров (только со значениями по умолчанию):
kubectl shturval login genconfig
  • Команда генерации конфигурационного файла с параметрами учетной записи (без пароля), URL shturval-backend-сервера и без проверки безопасности TLS-соединения:
kubectl shturval login genconfig --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --insecure=true --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ

В —client-secret следует вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету необходимо запросить данные у администратора Комплекса.

Ваш конфигурационный файл с именем shturval-login-plugin.yaml и заданными параметрами будет находиться в директории домашнего каталога пользователя (например, для Linux ‒ /root).

  • Команда генерации конфигурационного файла с параметрами учетной записи, URL shturval-backend-сервера, загрузкой конфигурационного файла в заданную директорию и без проверки TLS-соединения:
kubectl shturval login genconfig --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --insecure=true --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --config-path=ВВЕДИТЕ-Путь-ДО-РАСПОЛОЖЕНИЯ-КОНФИГУРАЦИОННОГО-ФАЙЛА

В —client-secret нужно вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления.

  • Команда генерации конфигурационного файла с параметрами учетной записи URL shturval-backend-сервера и c проверкой безопасности TLS-соединения (задан корневой сертификат):
kubectl shturval login genconfig --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА  --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --cacert=-----BEGIN CERTIFICATE-----Содержимое в Base64-----END CERTIFICATE-----
  • Команда генерации конфигурационного файла с проверкой безопасности TLS-соединения (задан путь до корневого доверенного сертификата в параметре):
kubectl shturval login genconfig --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА  --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --cacert-file=ВВЕДИТЕ-ПУТЬ-ДО-КОРНЕВОГО-ДОВЕРЕННОГО-СЕРТИФИКАТА
  • Команда генерации конфигурационного файла с измененными по умолчанию параметрами идентификатора клиента для внешнего сервиса аутентификации, URL-адреса сервера аутентификации и директории для загрузки kubeconfigs:
kubectl shturval login genconfig --kubeconfig=ВВЕДИТЕ-ПУТЬ-ДЛЯ-ЗАГРУЗКИ-kubeconfig --auth-url=keycloak.clustername.ip-XX-XX-XXX-XX.shturval.link --client-id=ВВЕДИТЕ-ИДЕНТИФИКАТОР-КЛИЕНТА-ДЛЯ-ВНЕШНЕГО-СЕРВИСА-АУТЕНТИФИКАЦИИ

Примеры загрузки kubeconfigs доступных кластеров, если сгенерирован конфигурационный файл

Для загрузки kubeconfigs доступных кластеров нужно запустить команду kubectl shturval login, в которую необходимо подставить свои значения параметров:

  • Команда загрузки kubeconfigs доступных кластеров, если конфигурационный файл был сконфигурирован без заданных параметров (только со значениями по умолчанию):
kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --insecure=true --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ

Пароль для подключения будет запрошен в интерактивном режиме.

  • Команда загрузки kubeconfigs доступных кластеров, если конфигурационный файл включает все обязательные параметры для загрузки kubeconfigs доступных кластеров:
kubectl shturval login

Пароль для подключения будет запрошен в интерактивном режиме.

  • Команда загрузки kubeconfigs доступных кластеров, если в конфигурационном файле заданы все обязательные параметры для загрузки kubeconfigs доступных кластеров и необходимо выполнить загрузку kubeconfigs с доступом другой учетной записи:
kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ

Без конфигурационного файла и графического интерфейса

Прежде чем выполнять аутентификацию нужно:

  1. ознакомиться с вариантами получения доступа к кластеру из консоли;
  2. установить модуль доступа к кластерам kubectl-shturval-plugin;
  3. когда модуль kubectl-shturval-plugin установлен, для загрузки kubeconfigs кластеров, доступных пользователю, запустить команду kubectl shturval login, в которую необходимо подставить свои значения параметров (таблица 12).
  1. После загрузки kubeconfigs кластеров можно управлять доступными кластерами, используя команды утилиты kubectl.

Важно ‒ После вызова команды без пароля для подключения (параметр -p/--password), он будет запрошен в интерактивном режиме.

Примеры загрузки kubeconfigs кластеров, доступных пользователю, без конфигурационного файла

  • Команда загрузки kubeconfigs кластеров с заданными параметрами учетной записи без пароля, URL shturval-backend-сервера, секрета клиента для сервиса аутентификации и без проверки безопасности TLS-соединения:
    kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --insecure=true --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ
    

В --client-secret следует вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету нужно запросить данные у администратора Комплекса.

  • Команда загрузки kubeconfigs кластеров с заданными параметрами учетной записи, URL shturval-backend-сервера, секрета клиента для сервиса аутентификации и включенной проверкой безопасности TLS-соединения (задан корневой сертификат):
    kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --cacert=-----BEGIN CERTIFICATE-----Содержимое в Base64-----END CERTIFICATE-----
    

В --client-secret нужно вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету, необходимо запросить данные у администратора Комплекса.

  • Команда загрузки kubeconfigs кластеров с заданными параметрами учетной записи, URL shturval-backend-сервера, секрета клиента для сервиса аутентификации и включенной проверкой безопасности TLS-соединения (задан путь до корневого доверенного сертификата):
    kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --cacert-file=ВВЕДИТЕ-ПУТЬ-ДО-КОРНЕВОГО-ДОВЕРЕННОГО-СЕРТИФИКАТА
    

В --client-secret нужно вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету, необходимо запросить данные у администратора Комплекса.

  • Команда загрузки kubeconfigs кластеров без проверки безопасности TLS-соединения, с заданной директорией для загрузки kubeconfigs доступных кластеров:
    kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --insecure=true --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --kubeconfig=ВВЕДИТЕ-ПУТЬ-ДЛЯ-ЗАГРУЗКИ-kubeconfig
    

В --client-secret нужно вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету, необходимо запросить данные у администратора Комплекса.

  • Команда загрузки kubeconfig одного кластера с заданными обязательными параметрами аутентификации, паролем для подключения к серверу shturval-backend, без проверки безопасности TLS-соединения:
    kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --cluster-name=myclustername --insecure=true
    

В --client-secret нужно вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету, необходимо запросить данные у администратора Комплекса.

  • Команда загрузки kubeconfig одного кластера с заданными обязательными параметрами аутентификации, проверкой безопасности TLS-соединения:
    kubectl shturval login --username=ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ПОДКЛЮЧЕНИЯ --password='ВВЕДИТЕ-ПАРОЛЬ-ПОЛЬЗОВАТЕЛЯ' --server-url=ВВЕДИТЕ-URL-shturval-backend-СЕРВЕРА --client-secret=ВВЕДИТЕ-Secret-КЛИЕНТА-СЕРВИСА-АУТЕНТИФИКАЦИИ --cluster-name=ВВЕДИТЕ-ИМЯ-КЛАСТЕРА --cacert-file=ВВЕДИТЕ-ПУТЬ-ДО-КОРНЕВОГО-ДОВЕРЕННОГО-СЕРТИФИКАТА
    

В --client-secret нужно вписать значение ключа backend секрета backend-<автогенерируемые символы>. Он находится в неймспейсе shturval-backend кластера управления. При отсутствии доступа к секрету, необходимо запросить данные у администратора Комплекса.

Если возникли ошибки доступа в кластер, можно найти способ решения проблемы в п. Действия в случае типовых ошибок доступа .

Действия в случае типовых ошибок доступа

На странице представлены решения возможных типовых ошибок доступа в кластер из консоли:

  • Ошибка недействительности токена (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)
    

Решение:

  1. из графического интерфейса Комплекса повторно скачать kubeconfig кластера;
  2. выполнить шаги п. Аутентификация с kubeconfig кластера или с помощью модуля kubectl-shturval-plugin (п. Установка и команды модуля) загрузить повторно kubeconfig кластера.
  • Некорректный сертификат в 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")

Решение:

  1. из графического интерфейса Комплекса повторно скачать kubeconfig кластера;
  2. выполнить шаги п. Аутентификация с kubeconfig кластера или с помощью модуля kubectl-shturval-plugin (п. Аутентификация с kubeconfig кластера) загрузить повторно kubeconfig кластера.
  • Ошибка экспорта kubeconfig кластера
EE1216 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?

Решение:

  1. экспортировать kubeconfig в папку ~/.kube. Если имя файла kubeconfig кластера отличается от config, переименовать файл kubeconfig кластера:
# Поместить в ~/.kube и переименовать clustername.conf
mv /downloads/clustername.conf ~/.kube/config
# Проверить расположение config
ls ~/.kube/ | grep config

где /downloads/clustername.conf ‒ путь до расположения 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
    

Решение:

  1. Необходимо включить синхронизацию по протоколу Network Time Protocol (NTP). Перейти к инструкции синхронизации времени для различных операционных систем (ОС) и выполнить синхронизацию. Если в ОС установлен один из сервисов NTP ‒ timesyncd, ntpd, Chrony, ‒ можно использовать команду 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
  • Ошибка в работе OIDC

Данная ошибка может возникнуть в случаях:

  • невалидного CA-сертификата;
  • недоступности кластера управления;
  • отсутствия у пользователя необходимых прав на выполнение действий в кластере.
error: You must be logged in to the server (Unauthorized)

Действия:

  1. получить логи контейнера kube-apiserver на каждом Control Plane-узле, чтобы убедиться в валидности СА-сертификата.

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

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

Если на Control Plane-узле получена ошибка, то причина ошибки в невалидном СА-сертификате. Пример ответа ошибки:

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

Решение:

  1. Если ошибка из-за СА-сертификата, то получить валидный СА-сертификат, добавить данные сертификата на Control Plane-узлы в /etc/ssl/certs/oidc.crt. СА-сертификат содержится в Configmap root-ca неймспейса cert-manager в вашем кластере. При отсутствии доступа к Configmap root-ca обратиться за получением валидного СА-сертификата к администратору кластера.
  2. Если проблема не с СА-сертификатом, обратиться к администратору Комплекса для уточнения доступности кластера управления.
  3. Если сертификат валидный и кластер управления доступен, то у вас недостаточно прав для действий в кластере. Следует запросить у администратора кластера расширение прав.
  • Отсутствие доступа к API-серверу

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

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

Действия:

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