Предпосылки
Прежде чем начать, вам понадобится следующее:
- Кластер Kubernetes
- Базовое понимание концепций Kubernetes
- Знакомство с концепциями и фреймворками машинного обучения, такими как TensorFlow или PyTorch
- Образ Docker для вашего приложения машинного обучения
Шаг 1. Создайте развертывание Kubernetes
Чтобы запустить приложение машинного обучения в Kubernetes, необходимо создать файл Deployment. Развертывание управляет набором реплик вашего приложения и обеспечивает их работу и доступность.
Создайте файл с именем deployment.yaml
и добавьте в него следующее содержимое:
apiVersion: apps/v1 kind: Deployment metadata: name: ml-app spec: replicas: 3 selector: matchLabels: app: ml-app template: metadata: labels: app: ml-app spec: containers: - name: ml-app image: your-ml-image:latest ports: - containerPort: 5000
Замените your-ml-image
именем вашего образа Docker для вашего приложения машинного обучения.
Выполните следующую команду, чтобы создать развертывание:
kubectl apply -f deployment.yaml
Эта команда создает развертывание с тремя репликами вашего приложения машинного обучения.
Шаг 2. Создайте службу Kubernetes
Чтобы представить ваше приложение машинного обучения внешнему миру, вам необходимо создать службу. Сервис предоставляет вашему приложению стабильный IP-адрес и DNS-имя, а также распределяет трафик между репликами вашего развертывания.
Создайте файл с именем service.yaml
и добавьте в него следующее содержимое:
apiVersion: v1 kind: Service metadata: name: ml-app spec: selector: app: ml-app ports: - name: http port: 80 targetPort: 5000 type: LoadBalancer
Выполните следующую команду, чтобы создать службу:
kubectl apply -f service.yaml
Эта команда создает службу, которая предоставляет вашему приложению машинного обучения доступ к порту 80.
Шаг 3. Масштабируйте развертывание
Чтобы обрабатывать больше трафика, вы можете увеличить количество реплик в своем развертывании. Выполните следующую команду, чтобы масштабировать до пяти реплик:
kubectl scale deployment ml-app --replicas=5
Эта команда увеличивает развертывание до пяти реплик.
Шаг 4. Запуск заданий машинного обучения
Для запуска заданий машинного обучения в кластере Kubernetes вы можете использовать такой инструмент, как Kubeflow или TensorFlow Serving.
Вот пример того, как запустить задание TensorFlow Serving в вашем кластере Kubernetes:
apiVersion: serving.kubeflow.org/v1alpha2 kind: Tensorflow metadata: name: tf-serving spec: default: predictor: tensorflow: storageUri: gs://your-bucket/your-model resources: limits: cpu: 1 memory: 1Gi requests: cpu: 0.5 memory: 500Mi
Сохраните этот манифест в файл с именем tf-serving.yaml
, затем выполните следующую команду, чтобы создать задание TensorFlow Serving:
kubectl apply -f tf-serving.yaml
Эта команда создает задание TensorFlow Serving, которое загружает вашу модель машинного обучения из Google Cloud Storage и запускает ее в вашем кластере Kubernetes.
В этом руководстве мы рассмотрели, как настроить рабочий процесс машинного обучения в Kubernetes. Следуя этим шагам, вы сможете развернуть свое приложение машинного обучения в Kubernetes, масштабировать его для обработки большего трафика и запускать задания машинного обучения с помощью таких инструментов, как Kubeflow или TensorFlow Serving.
Kubernetes предоставляет мощную платформу для выполнения рабочих нагрузок машинного обучения с такими функциями, как масштабируемость, отказоустойчивость и управление ресурсами. Используя Kubernetes для машинного обучения, вы можете легко управлять своими приложениями и масштабировать их, а также пользоваться многими преимуществами работы на контейнерной платформе.
Если вам интересно узнать больше о Kubernetes, ознакомьтесь с моей книгой Learning Kubernetes — полное руководство от начального до среднего Лирона Фостера (https://a.co/d/aLXDvsZ).