Kubernetes CLI (kubectl)
Kubectl
Для работы с Nova Container Platform вы можете использовать стандартный инструмент CLI kubectl
. С помощью kubectl
вы сможете развертывать приложения, проверять и управлять ресурсами кластера, а также получать диагностическую информацию.
Вы можете установить последнюю версию kubectl
, руководствуясь официальной документацией Kubernetes по установке и настройке kubectl для разных ОС.
Kubelogin
Kubelogin является плагином инструмента kubectl
и предоставляет возможность автоматизированного получения доступа к кластеру Kubernetes с помощью персональной учетной записи по протоколу OAuth (OpenID Connect).
Kubelogin удобно использовать, когда необходимо обеспечить доступ к кластеру множеству пользователей. При этом, нет необходимости подготавливать пользователям персональные kubeconfig
конфигурации.
Nova Container Platform предоставляет универсальную конфигурацию (kubeconfig
) для инструмента kubectl
.
Дополнительная информация
Подробнее о работе Kubernetes API Server с токенами OpenID Connect (OIDC) можно узнать в официальной документации Kubernetes OpenID Connect Tokens.
Установка kubelogin
Вы можете установить последнюю версию kubelogin
следующими способами:
- с помощью Homebrew для ОС macOS и Linux,
- используя менеджер плагинов
kubectl
Krew, - используя менеджер пакетов для Windows Chocolatey
- из релизов GitHub
Пример установки kubelogin
Github-релизы kubelogin
также доступны в репозиториях Nova Container Platform:
Для установки kubelogin
из GitHub-релиза необходимо выполнить следующие действия:
-
Загрузить подходящую для вашей ОС версию
kubelogin
. -
Переименовать бинарный файл
kubelogin
в файлkubectl-oidc_login
. -
Добавить путь к бинарному файлу
kubectl-oidc_login
в переменную окруженияPATH
.
Пример проверки установки kubelogin
$ which kubectl-oidc_login
/Users/nova/.krew/bin/kubectl-oidc_login
$ echo $PATH
/Users/nova/.krew/bin:/opt/homebrew/bin:/opt/homebrew/sbin
Дополнительная информация
Подробнее о работе плагинов kubectl
можно узнать в официальной документации Kubernetes Extend kubectl with plugins.
Подключение к кластеру
Для управления кластером Kubernetes вам необходимо пройти процесс аутентификации с использованием зарегистрированной учетной записи.
Необходимые условия
-
У вас есть сетевой доступ к кластеру Kubernetes
-
Вы установили инструмент управления кластером
kubectl
и плагинkubelogin
Информация
Если ваш кластер доступен только через HTTP-прокси, вы можете установить переменные окружения HTTP_PROXY
, HTTPS_PROXY
и NO_PROXY
. Эти переменные учитываются инструментом kubectl
и обеспечат доступ к кластеру Kubernetes через ваш HTTP-прокси.
Процедура
-
Определите в консоли переменную
KUBECONFIG
, содержащую путь к полученному после установки файлуkubeadmin.conf
: -
Получите универсальную конфигурацию
kubeconfig
для доступа к кластеру по протоколу OAuth: -
Переопределите в консоли переменную
KUBECONFIG
, содержащую путь к полученному на предыдущем шаге файлуkubeconfig-oidc.conf
: -
Выполните любую пробную команду с помощью
kubectl
, например:При первом доступе к кластеру Kubernetes, а также при необходимости обновления учетных данных, вы будете автоматически перенаправлены на веб-страницу аутентификации через встроенный провайдер идентификации Nova Container Platform.
Введите данные учетной записи администратора кластера
kubeadmin
для авторизации по протоколу OAuth выбрав метод аутентификации Username.В случае успешной аутентификации вы будете перенаправлены на страницу с подтверждением возможности входа в кластер Kubernetes. Данную страницу можно закрыть.
Пробная команда
kubectl
, запущенная ранее, продолжит работу и возвратит запрошенную информацию.Пример
Ваши учетные данные (OIDC-токены), полученные таким образом, кешируются ограниченное время в файлах директории ~/.kube/cache/oidc-login/
.
Подключение к кластеру через промежуточный сервер
Вы можете подключиться к кластеру Kubernetes через промежуточный сервер, используя Nova OAuth.
Необходимые условия
-
У вас есть сетевой доступ к промежуточному серверу
-
У промежуточного сервера есть сетевой доступ к кластеру Kubernetes
-
Вы установили инструмент управления кластером
kubectl
и плагинkubelogin
на промежуточный сервер
Процедура
-
Получите универсальную конфигурацию
kubeconfig
для доступа к кластеру по протоколу OAuth и сохраните ее на промежуточном сервере: -
Добавьте в файл дополнительные параметры промежуточного сервера:
apiVersion: v1 clusters: ... - name: oidc-kubernetes-client user: exec: apiVersion: client.authentication.k8s.io/v1beta1 args: ... - --listen-address=< адрес промежуточного сервера >:< порт > - --skip-open-browser - --oidc-redirect-url-hostname=< адрес промежуточного сервера >
Информация
В качестве адреса промежуточного сервера вы можете указать IP-адрес или полное доменное имя (FQDN).
Пример
-
Добавьте адрес перенаправления (Redirect URI) в список разрешенных для клиента Kubernetes:
-
Для этого перейдите выполните вход в веб-интерфейс Secrets Manager с помощью учетной записи администратора. Веб-интерфейс Secrets Manager находится по адресу https://nova-oauth.< dnsBaseDomain >/.
-
Перейдите в раздел Access > OIDC Provider и выберете приложение
oidc-kubernetes-client
. -
Отредактируйте параметры приложения с помощью кнопки "Edit Application" и добавьте в список
Redirect URIs
адрес вашего промежуточного сервера, например,http://< адрес промежуточного сервера >:< порт >
. -
Сохраните конфигурацию приложения.
-
-
Переопределите в консоли переменную
KUBECONFIG
, содержащую путь к полученному на шаге 2 файлуkubeconfig-oidc.conf
: -
Выполните любую пробную команду с помощью
kubectl
на промежуточном сервере, например:При первом доступе к кластеру Kubernetes через промежуточный сервер, а также при необходимости обновления учетных данных, вам будет предложено перейти в веб-интерфейс для прохождения процедуры аутентификации.
После успешного прохождения процедуры ваши учетные данные (OIDC-токены), полученные таким образом, будут сохранены на ограниченное время в файлах домашней директории
~/.kube/cache/oidc-login/
промежуточного сервера.