Как получить доступ к кластеру из консоли
В платформе Штурвал реализован модуль kubectl-shturval-plugin
, позволяющий получить доступ к кластерам без использования графического интерфейса платформы.
- Команда модуля
kubectl shturval login
обеспечивает прохождение авторизации в платформе и выгрузку kubeconfigs всех клиентских кластеров, доступных пользователю, или kubeconfig одного клиентского кластера. Когда загружены kubeconfigs, вы можете управлять доступными кластерами, используя команды утилиты kubectl; - Команда модуля
kubectl shturval login genconfig
обеспечивает настройку конфигурационного файла с заданными параметрами для модуляkubectl-shturval-plugin
, который будет использован при получении доступа к кластерам в командеkubectl shturval login
.
Установка модуля kubectl-shturval-plugin
- Чтобы начать работу с модулем, скачайте бинарный файл
kubectl-shturval
:
- Проверьте расположение исполняемого файла kubectl, выполнив команду:
which kubectl
По умолчанию исполняемый файл kubectl находится в /usr/local/bin/
. Если путь расположения исполняемого файла отличен от /usr/local/bin/
, используйте его в командах далее вместо /usr/local/bin/
.
- Положите бинарный файл
kubectl-shturval
к исполняемому файлу kubectl и обеспечьте выдачу права на выполнение. Для этого выполните команду, где вместо/downloads/kubectl-shturval
укажите путь до файлаkubectl-shturval
, скаченного на шаге 1.
sudo cp ./kubectl-shturval /usr/local/bin/ && sudo chmod +x /usr/local/bin/kubectl-shturval
- Убедитесь, что файл располагается в той же директории, что и исполняемый файл kubectl, выполнив команду:
ls /usr/local/bin/ | grep kubectl-shturval
- Для вызова справки о команде
kubectl shturval login
модуляkubectl-shturval-plugin
используйте параметр:
Параметр | Описание |
---|---|
-h, --help |
Справка о команде |
Пример:
kubectl shturval login -h
Параметры команды kubectl shturval login
:
Параметр | Обязательный | Описание |
---|---|---|
--auth-url [string] |
нет | URL-адрес сервера аутентификации Shturval |
--cacert [string] |
нет | Путь до корневого доверенного сертификата |
--client-id [string] |
нет | Идентификатор клиента для внешнего сервиса аутентификации |
--client-secret [string] |
нет | Secret клиента для внешнего сервиса аутентификации |
--clientcert [string] |
нет | Путь до клиентского сертификата |
--clientkey [string] |
нет | Путь до публичного ключа пользователя |
-n, --cluster-name [string] |
нет | Имя кластера для получения kubeconfig. Не указывается, если необходимо получить kubeconfigs всех кластеров |
--config-path [string] |
нет | Путь до расположения конфигурационного файла shturval-login-plugin. По умолчанию: $HOME |
-i, --insecure |
нет | Признак проверки безопасности TLS соединения |
-k, --kubeconfig [string] |
нет | Путь расположения загруженных kubeconfigs. По умолчанию: $HOME/.kube |
-p, --password [string] |
да | Пароль для подключения к серверу shturval-backend |
-s, --server-url [string] |
да | URL shturval-backend сервера |
--ttl [string] |
нет | Время жизни токена. По умолчанию 24h |
-u, --username [string] |
да | Имя пользователя для подключения к серверу shturval-backend |
-v, --version |
нет | Версия команды login |
Порядок действий для авторизации и загрузки kubeconfigs клиентских кластеров
- Когда модуль
kubectl-shturval-plugin
установлен, выполните подключение к платформе с обязательными параметрами авторизации. При необходимости сконфигурируйте дополнительные параметры и выполните командуkubectl shturval login
.
Пример:
kubectl shturval login --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link
В команде kubectl shturval login
вместо myName
и myPassword
укажите ваш логин и пароль, в server-url
задайте IP адрес shturval-backend сервера вместо XX-XX-XXX-XX
. По умолчанию подключение будет выполнено с проверкой безопасности TLS соединения --insecure= false
.
Чтобы отключить проверку безопасности TLS соединения, в команде необходимо указать --insecure=true
.
Пример:
kubectl shturval login --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --insecure=true
Если необходимо выполнить подключение к платформе с проверкой безопасности TLS соединения, укажите путь до корневого доверенного сертификата в параметре --cacert
. При необходимости дополнительно укажите --clientcert
и --clientkey
.
Пример:
kubectl shturval login --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --cacert=/home/username/downloads/apps-ip-XX-XX-XXX-XX.shturval-link.pem
В результате выполнения команды kubectl shturval login
:
- пройдена авторизация в платформе;
- kubeconfigs всех доступных пользователю клиентских кластеров загружены в файл
config
директории/home/username/.kube
. При необходимости вы можете изменить путь загрузки kubeconfigs, используя параметр--kubeconfig
в командеkubectl shturval login
.
Пример:
kubectl shturval login --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --kubeconfig=/tmp/kube/config
- Когда 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 --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --cluster-name=myclustername
В команде kubectl shturval login
вместо myName
и myPassword
укажите ваш логин и пароль, в server-url
задайте IP адрес shturval-backend сервера вместо XX-XX-XXX-XX
. По умолчанию подключение будет выполнено с проверкой безопасности TLS соединения --insecure= false
.
Чтобы отключить проверку безопасности TLS соединения, необходимо указать --insecure=true
.
Если вы хотите выполнить подключение к платформе с проверкой безопасности TLS соединения, укажите путь до корневого доверенного сертификата в --cacert
. При необходимости дополнительно укажите --clientcert
и --clientkey
.
Пример:
kubectl shturval login --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link --cacert=/home/username/downloads/apps-ip-XX-XX-XXX-XX.shturval-link.pem
В результате выполнения команды kubectl shturval login
будет:
- пройдена авторизация в платформе;
- kubeconfig указанного клиентского кластера загружен в файл config директории
/home/username/.kube
. При необходимости вы можете изменить путь загрузки kubeconfig, используя параметр--kubeconfig
в командеkubectl shturval login
.
- Когда kubeconfig загружен, проверьте на какой контекст настроен kubectl:
kubectl config current-context
Используйте команды kubectl
для управления кластером текущего контекста.
Подготовка конфигурационного файла для команды kubectl shturval login
В команде kubectl shturval login genconfig
конфигурируются те же параметры, что и в команде kubectl shturval login
. Вы можете сгенерировать конфигурационный файл с любым набором параметров, так как все параметры являются необязательными для команды kubectl shturval login genconfig
.
- Задайте параметры для конфигурационного файла в команде
kubectl shturval login genconfig
.
Пример:
kubectl shturval login genconfig --username=myName --password="myPassword" --server-url=https://back.apps.ip-XX-XX-XXX-XX.shturval.link
Ваш конфигурационный файл с именем .shturval-login-plugin
и заданными параметрами будет находится в директории /home/username
. При необходимости вы можете изменить путь для загрузки конфигурационного файла, используя параметр --config-path
в команде kubectl shturval login genconfig
.
- Убедитесь, что конфигурационный файл подготовлен, выполнив команду:
cat /home/username/.shturval-login-plugin
В ответе ожидается:
auth-url: ""
client-id: ""
client-secret: ""
cluster-name: ""
config-path: /home/username
insecure: false
kubeconfig: /home/username/.kube/config
password: "myPassword"
server-url: "https://back.apps.ip-XX-XX-XXX-XX.shturval.link"
ttl: 24h
username: myName
Если вы выполните команду kubectl shturval login genconfig
без заданных параметров, конфигурационный файл будет сформирован с дефолтными значениями.
Обратите внимание! Данные параметров, которые вы укажете в команде kubectl shturval login
будут иметь приоритет перед значениями этих же параметров конфигурационного файла .shturval-login-plugin
. При этом значения параметров конфигурационного файла не будут перезаписаны.