Какой у вас опыт работы с Kubernetes?

«Какой у вас опыт работы с Kubernetes?» — вопрос из категории DevOps, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Я разворачивал и поддерживал в Kubernetes кластерах (как managed, так и self-hosted) сервисы для инференса ML-моделей и оркестрации тренировочных джоб. Основные задачи:

  1. Деплой сервисов: Создание Deployments, Services (включая LoadBalancer и ClusterIP) и Ingress-контроллеров для доступа к API.
  2. Конфигурация и секреты: Использование ConfigMaps и Secrets для управления настройками и чувствительными данными.
  3. Масштабирование: Настройка HorizontalPodAutoscaler (HPA) на основе CPU/памяти или кастомных метрик из Prometheus.

Пример манифеста для сервиса инференса с лимитами ресурсов и readiness-пробой:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: model-inference
spec:
  selector:
    matchLabels:
      app: model-inference
  template:
    metadata:
      labels:
        app: model-inference
    spec:
      containers:
      - name: api
        image: my-registry/model-api:v1.2
        ports:
        - containerPort: 8000
        readinessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 10
        resources:
          requests:
            memory: '512Mi'
            cpu: '250m'
          limits:
            memory: '1Gi'
            cpu: '500m'

Также использовал Kubeflow Pipelines для организации воспроизводимых ML-воркфлоу и Helm для управления релизами сложных приложений.