Перейти к основному содержимому
Установить Kubeflow
Последнее изменение:

Установить Kubeflow

к сведению

В инструкции мы рассматриваем установку Kubeflow версии 1.5. Также инструкция подходит для установки версии 1.6.

  1. Подключите ML-платформу Selectel.
  2. Создайте облачный сервер с операционной системой Linux.
  3. Подключитесь к облачному серверу.
  4. Установите kustomize на облачном сервере.
  5. Установите kubectl на облачном сервере.
  6. Установите Kubeflow на облачном сервере.

Подключить ML-платформу

Для работы Kubeflow нужен кластер Kubernetes с StorageClass. Подключите ML-платформу — будет автоматически создан готовый к работе кластер Managed Kubernetes.

Рекомендованные версии кластера Managed Kubernetes:

KubeflowManaged Kubernetes
1.51.21
1.61.22

Создать облачный сервер

Для установки Kubeflow 1.5 необходим kustomize версии 3.2.0 (для Kubeflow 1.6 тоже можно использовать версию 3.2.0). Собранный бинарный файл для установки kustomize 3.2.0 есть только для операционной системы Linux и amd64, поэтому в инструкции мы рассматриваем установку всех компонентов на облачном сервере с Linux.

к сведению

Если вы используете другую архитектуру CPU или другую операционную систему, то могут возникнуть проблемы с использованием kustomize версии 3.2.0

  1. В панели управления перейдите в раздел Облачная платформаСерверы.

  2. Нажмите Создать сервер.

  3. В блоке Источник нажмите Выбрать другой источник и выберите готовый образ с операционной системой Linux (например, Ubuntu 18.04).

  4. Выберите загрузочный диск сервера. Можно выбрать:

    Мы рекомендуем использовать диск размером не менее 5 ГБ (минимальный доступный размер) — на облачном сервере требуется место для бинарного файла kustomize (~25 МБ) и манифеста Kubeflow (~7 МБ).

  5. В блоке Сеть выберите приватную подсеть с публичным IP-адресом. IP-адрес нужен для подключения к серверу по SSH.

  6. Создайте SSH-ключ и скопируйте его публичную часть. В блоке Доступ нажмите Загрузить SSH-ключ и вставьте публичную часть ключа. Нажмите Добавить ключ.

  7. Выберите остальные настройки сервера — подробнее в инструкции Создать облачный сервер.

  8. Нажмите Создать.

Подключиться к облачному серверу

  1. В панели управления перейдите в раздел Облачная платформаСерверы.

  2. В строке с облачным сервером скопируйте значение в столбце IP-адрес.

  3. Подключитесь к облачному серверу по SSH:

    ssh root@<IP_address> -i <path_to_private_key>

    Укажите:

    • <IP_address> — публичный IP-адрес облачного сервера, скопированный на шаге 2;
    • <path_to_private_key> — путь до приватной части ключа.

Установить kustomize на облачном сервере

Kubeflow 1.5.0 не совместим с версиями kustomize выше 4.х — мы рассматриваем установку kustomize версии 3.2.0

  1. Загрузите бинарный файл с дистрибутивом kustomize на облачный сервер:

    wget https://github.com/kubernetes-sigs/kustomize/releases/download/v3.2.0/kustomize_3.2.0_linux_amd64
  2. Установите kustomize:

    install -o root -g root -m 0755 kustomize_3.2.0_linux_amd64 /usr/local/bin/kustomize
  3. Проверьте, что kustomize установлен:

    kustomize version

    Ответ:

    Version: {KustomizeVersion:3.2.0 GitCommit:a3103f1e62ddb5b696daa3fd359bb6f2e8333b49 BuildDate:2019-09-18T16:26:36Z GoOs:linux GoArch:amd64}

Установить kubectl на облачном сервере

  1. Загрузите дистрибутив kubectl на облачный сервер:

    curl -LO 'https://dl.k8s.io/release/v1.21.0/bin/linux/amd64/kubectl'
  2. Установите kubectl:

    install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  3. В панели управления перейдите в раздел Облачная платформаKubernetes.

  4. Откройте страницу кластера → вкладка Настройки.

  5. Нажмите Скачать kubeconfig.

  6. Отключитесь от облачного сервера и откройте терминал на локальной машине.

  7. Скопируйте конфигурационный файл с локальной машины на облачный сервер:

    scp -i <~/.ssh/id_rsa> <~/Downloads/kubeconfig.yaml> root@<IP_address>:/root/<kubeconfig.yaml>

    Укажите:

    • <~/.ssh/id_rsa> — путь на локальной машине до SSH-ключа, который был сгенерирован на шаге 6 инструкции Создать облачный сервер;
    • <~/Downloads/kubeconfig.yaml> — путь на локальной машине до конфигурационного файла, который был скачан на шаге 6;
    • <IP_address> — публичный IP-адрес облачного сервера;
    • <kubeconfig.yaml> — имя конфигурационного файла.
  8. Подключитесь к облачному серверу.

  9. Проверьте, что конфигурационный файл загружен:

    ls -ailh
  10. Экспортируйте конфигурационный файл:

    export KUBECONFIG=/root/<kubeconfig.yaml>

    Укажите <kubeconfig.yaml> — имя конфигурационного файла.

  11. Проверьте, что kubectl установлен:

    kubectl version

    Ответ:

    Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.13", GitCommit:"592eca05be27f7d927d0b25cbb4241d75a9574bf", GitTreeState:"clean", BuildDate:"2022-10-12T10:50:48Z", GoVersion:"go1.17.13", Compiler:"gc", Platform:"linux/amd64"}
    WARNING: version difference between client (1.21) and server (1.23) exceeds the supported minor version skew of +/-1
  12. Обратитесь к кластеру через kubectl:

    kubectl get nodes

    Ноды должны быть в статусе Ready.

Установить Kubeflow на облачном сервере

  1. Установите git:

    apt update
    apt install git
  2. Клонируйте репозиторий с манифестами Kubeflow:

    git clone [https://github.com/kubeflow/manifests.git](https://github.com/kubeflow/manifests.git)
  3. Перейдите в папку с манифестами:

    cd manifests/
  4. Откройте ветку:

    git checkout v1.5-branch
  5. Убедитесь, что открыта нужная ветка:

    git branch -a

    Ответ:

    master

    * v1.5-branch
  6. Установите официальные компоненты Kubeflow:

    while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done
  7. Проверьте, что все пространства имен активны:

    kubectl get namespaces
  8. Если при установке возникли ошибки, установите компоненты отдельно — используйте документацию Kubeflow.

  9. Проверьте, что все компоненты активны — у них должен быть статус Running:

    kubectl get pods -n auth
    kubectl get pods -n cert-manager
    kubectl get pods -n istio-system
    kubectl get pods -n knative-eventing
    kubectl get pods -n kserve
    kubectl get pods -n knative-serving
    kubectl get pods -n kubeflow
    kubectl get pods -n kubeflow-user-example-com
  10. Пробросьте порты:

    kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
  11. Откройте в браузере страницу http://localhost:8080

  12. Для подключения к Kubeflow введите данные по умолчанию — логин (user@example.com) и пароль (12341234).