Подключение к кластеру через kubectl
Kubectl — это инструмент командной строки для управления кластерами Kubernetes. Kubectl используется для развёртывания приложений, проверки ресурсов кластера и просмотра логов. Полный список операций kubectl доступен в официальной документации.
Способ подключения к кластеру зависит от его IP-адреса:
- Если кластеру назначен внешний IP-адрес, можно подключиться к нему с любого хоста, имеющего доступ в интернет.
- Если кластеру назначен только внутренний IP-адрес, можно подключиться к нему только с хоста в VK Cloud — виртуальной машины, которая находится в той же подсети, что и кластер.
Чтобы выполнить подключение к кластеру через kubectl:
- Шаг 1. Установите kubectl.
- Шаг 2. Установите keystone-auth.
- Шаг 3. Скачайте конфигурационный файл кластера.
- Шаг 4. Экспортируйте конфигурационный файл кластера в переменные окружения.
- Шаг 5. Проверьте подключение к кластеру.
На хосте, с которого планируется подключаться к кластеру, установите kubectl, если утилита ещё не установлена.
# sudo apt-get update && sudo apt-get install -y apt-transport-https$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -$ echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list$ sudo apt-get update$ sudo apt-get install -y kubectl
$ yum install -y kubectl
$ brew install kubernetes-cli
Если планируется подключаться к кластеру Kubernetes версии 1.23 и выше, подготовьте всё необходимое для подключения с использованием Single Sign-On (SSO):
-
Скачайте архив из дистрибутива, расположенный по адресу
<DEPLOY_NEXUS_IP>:<PORT>/repository/share/kubernetes/client-keystone-auth.zip. -
Распакуйте архив. Выберите тип операционной системы —
$GOOSи используемую архитектуру —$GOARCH. -
Установите
keystone-auth:$ chmod -R +x client-keystone-auth/$GOOS/$GOARCHmv client-keystone-auth/$GOOS/$GOARCH/* /usr/bin/ -
Определите, от имени какого пользователя будет выполняться подключение к кластеру. Затем:
- Добавьте этому пользователю роль
mcs_k8s_admin(подробнее — в Руководстве администратора VK Private Cloud). - В Портале самообслуживания получите токен для доступа к API для пользователя.
- Добавьте этому пользователю роль
Конфигурационный файл автоматически сохраняется на устройство при создании кластера. Если этого не произошло, выполните шаги данной инструкции.
Чтобы скачать конфигурационный файл кластера:
-
Выполните подготовительные операции (подробнее — в разделе Портал самообслуживания).
-
Перейдите в раздел Контейнеры → Кластеры Kubernetes.
-
Нажмите на значок ••• справа от названия кластера и выберите пункт Получить Kubeconfig для доступа к кластеру. На локальный диск будет загружен файл с расширением
.yaml. -
Ограничьте права доступа к файлу
kubeconfig:Linux$ sudo chmod 0600 /home/user/.kube/kubernetes-cluster-1234_kubeconfig.yamlWindows> icacls.exe 'C:\Users\user\.kube\kubernetes-cluster-1234_kubeconfig.yaml' `/c /t `/Inheritance:d `/Remove:g BUILTIN\Administrators Everyone Users `/Grant:r ${env:UserName}:RW
Чтобы экспортировать файл kubeconfig:
$ export KUBECONFIG=<ПУТЬ_К_ФАЙЛУ_КОНФИГУРАЦИИ_KUBECONFIG_YAML>
> env:KUBECONFIG = 'C:\Users\user\.kube\kubernetes-cluster-1234_kubeconfig.yaml'
Чтобы подключится к кластеру:
-
Нажмите на имя пользователя в шапке страницы и выберите пункт Настройки проекта.
-
Перейдите на вкладку Доступ по API и скопируйте значение Токен для доступа к API.
-
Выполните команду:
# export token=<TOKEN># alias kubectl='kubectl --token $token'# kubectl get nodes -Aгде
<TOKEN>— значение Токен для доступа к API.Проверьте подключение:
$ kubectl cluster-infoПример ожидаемого результатаKubernetes control plane is running at https://192.168.24.118:6443Heapster is running at https://192.168.24.118:6443/api/v1/namespaces/kube-system/services/heapster/proxyCoreDNS is running at https://192.168.24.118:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy