Развёртывание, масштабирование и мониторинг хранилища Kubernetes

Введение в Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Persistent Volumes и Persistent Volume Claims

Постоянные тома и заявки на постоянные тома

  • Базовые объекты для хранения данных: Persistent Volumes (PV) — существуют независимо от подов
  • PV связываются с подами через Persistent Volume Claims (PVC)
  • Привязанный PV сохраняет данные при остановке, удалении или перезапуске пода
  • PV обеспечивают разделение хранилища и вычислений
Введение в Kubernetes

Storage Classes

Storage Classes

  • PV можно подготовить:
    • вручную — администратором Kubernetes
    • динамически — обычным пользователем
  • Динамическая подготовка выполняется через Storage Classes (SC) без участия человека
  • Storage Classes (SC):
    • определяются администратором Kubernetes
    • бывают разных типов (различная задержка, например SSD и HDD, разные стратегии резервного копирования)
  • Если сомневаетесь — используйте Storage Classes ;-)
Введение в Kubernetes

Всё вместе

  • Для работы хранилища используются три объекта:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • Под, которому нужны постоянные данные, использует PersistentVolumeClaim

  • PVC инициирует создание PersistentVolume для пода в Kubernetes
  • Этот PersistentVolume привязывается к поду, создавшему заявку
  • Используется именованный StorageClass, определяющий задержку и стратегию резервного копирования PV
  • PersistentVolume и сохранённые данные остаются доступными даже после завершения работы Pod
Введение в Kubernetes

Фрагменты манифестов

Под с PersistentVolume

apiVersion: v1
kind: Pod
...

spec: containers: ... volumeMounts: - name: pv-mydata mountPath: /mydata
volumes: - name: pv-mydata persistentVolumeClaim: claimName: datacamp-pvc

PersistentVolumeClaim со StorageClass

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: datacamp-pvc

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Введение в Kubernetes

Команды "kubectl" для работы с хранилищем

  • kubectl предоставляет полный набор команд для создания и мониторинга хранилища Kubernetes
  • Примеры:
    • kubectl get sc — список всех доступных Storage Classes
    • kubectl get pvc — список всех развёрнутых Persistent Volume Claims
    • kubectl get pv — список всех развёрнутых Persistent Volumes
    • Как обычно, kubectl apply -f <manifest> позволяет развернуть ресурсы хранилища, объявленные в манифестах.
Введение в Kubernetes

Давайте потренируемся!

Введение в Kubernetes

Preparing Video For Download...