Centos7 install Kubeflow

Эксплуатация и техническое обслуживание

Предисловие: Исследования и разработки компании требуют, чтобы технологические стеки, связанные с машинным обучением, были рекомендованы для использования, поэтому она впервые начала ступить на kubeflow, tensorflow, YoutubeDNN и т. д. (ML: машинное обучение)

окрестности

centos7.5
k8s v1.20.5
docker 19.03.15

Установить

建议参考官方文档:https://www.kubeflow.org/docs/started/k8s/kfctl-k8s-istio/

wget https://github.com/kubeflow/kfctl/releases/download/v1.2.0/kfctl_v1.2.0-0-gbc038f9_linux.tar.gz
tar -xf kfctl_v1.2.0-0-gbc038f9_linux.tar.gz
mv kfctl /usr/sbin
创建目录(自定义):mkdir -p /letv/kubeflow/kf-test
export PATH=$PATH:/usr/sbin/kfctl
export KF_NAME=kf-test
export BASE_DIR=/letv/kubeflow
export KF_DIR=${BASE_DIR}/${KF_NAME}
export CONFIG_FILE=${KF_DIR}/kfctl_k8s_istio.v1.2.0.yaml
cd /letv/kubeflow/kf-test
kfctl apply -V -f ${CONFIG_FILE}
kubectl -n kubeflow get all

создать пв

При создании большого количества подов kubeflow с помощью kfctl apply выше я сталкиваюсь с двумя проблемами:

  1. Зеркало gcr.io не может быть загружено,Решение - повесить прокси на сервер, конец этой статьи..

Метод, который я использую, заключается в том, чтобы загрузить локальную лестницу, передать ее в гавань, а затем использовать сервер для загрузки большого количества изображений гавани; или обратиться к другим методам:Загрузите образ gcr.io через Alibaba Cloud

  1. Создайте pv и pvc; нужно связать четыре pvc (katib-mysq, metadata-mysql, minio-pvc, mysql-pv-claim)

Метод, который я использую, заключается в создании файлов yaml pv и pvc с использованием NFS, например:

root@vm-10-124-65-248 ~/test/kubeflow/PV$ cat PV_katib-mysql.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  labels:
    name: pv-katib-mysql
  name: pv-katib-mysql
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 10Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: katib-mysql
    namespace: kubeflow
  nfs:
    path: /letv/nfs_kubeflow/data/v1/katib-mysql/
    server: 10.124.65.247
  persistentVolumeReclaimPolicy: Retain
  volumeMode: Filesystem
root@vm-10-124-65-248 ~/test/kubeflow/PV$ cat PVC_katib-mysql.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    app.kubernetes.io/component: katib
    app.kubernetes.io/name: katib-controller
  name: katib-mysql
  namespace: kubeflow
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  volumeMode: Filesystem
  volumeName: pv-katib-mysql

Также есть поды, которые вызывают проблему зеркалирования sha256, Мое решение здесь — отредактировать развертывание под соответствующим ns и удалить последнюю строку sha256 в образе:kubectl edit deploy activator -n knative-serving

Dashboard

masterip:31380

image.pngПри первом входе на панель мониторинга создается пространство имен, в котором создаются модули, такие как серверы ноутбуков.

Запуск серверов ноутбуков

Пожалуйста, обратитесь к:AWS.Amazon.com/talent/blogs/eat…

Вот такая яма, с которой я столкнулся: при использовании Notebook Servers для создания тестовой модели нужно также создать pv и pvc, иначе данные модели не сохранятся, но после того, как я ее создал, pod все равно вышел из строя, и логи kubectl показывали что /home/jovyan не имеет разрешения, причина в том, что PV, созданный NFS, не имеет разрешения.Здесь путь монтирования NFS напрямую указан в 777.,проблема решена..

image.png

image.png

Серверы ноутбуков запускают пользовательский образ

При запуске серверов ноутбуков на панели управления kubeflow вы можете выбрать собственное изображение, например:

image.pngПоэтому я попытался запустить его с изображением tensorflow.После создания модуля возникла проблема с модулем.Описание устранения неполадок предполагает, что у входа в систему Docker есть проблема с разрешением? Продолжайте изучать:

Причина в том, что отсутствует конфигурация sa (serviceAccount):

  • Kubeflow требуется разрешение на извлечение зеркала, здесь нет соответствующего разрешения на извлечение
  • Итак, секрет был создан в его пространстве имен. Секрет специально подготовлен для аутентификационной информации реестра докеров. Здесь я называюсь myregistry.
  • Несмотря на то, что создается секрет, приложение, созданное интерфейсом kubeflow, является приложением statefulsets, и в statefulsets указывается sa: default-editor
  • Этот sa:default-editor не указывал никакого секрета, просто указывал (myregistry)
  • statefulsets запущены и работают нормально.

image.png

image.png