Розгортання, масштабування та моніторинг сховищ Kubernetes

Вступ до Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Persistent Volumes і Persistent Volume Claims

Постійні томи та запити постійних томів

  • Базові об'єкти для сховища: Persistent Volumes (PV), існують окремо від Pod-ів
  • PV прив'язують до Pod-ів через Persistent Volume Claims (PVC)
  • Прив'язаний PV зберігає дані, коли Pod зупинено, завершено або перезапущено
  • PV відокремлюють сховище від обчислень
Вступ до Kubernetes

Storage Classes

Класи сховищ

  • PV: надаються або
    • вручну адміністратором Kubernetes
    • динамічно звичайним користувачем
  • Динамічне надання відбувається через Storage Classes (SC) без втручання людини
  • Storage Classes (SC):

    • визначаються адміністратором Kubernetes
    • різні типи (різна затримка, напр., SDD vs HDD, різні стратегії резервування)
  • Якщо не певні — скористайтеся Storage Classes ;-)

Вступ до Kubernetes

Зведемо все докупи

  • Лише три об'єкти забезпечують роботу сховища:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • Pod, якому потрібні постійні дані, використовує PersistentVolumeClaim

  • Цей PVC змушує Kubernetes створити PersistentVolume для Pod-а
  • Цей PersistentVolume прив'язується до Pod-а, що робить запит
  • Використовується іменований StorageClass, який визначає, зокрема, затримку та стратегію резервування PV
  • Цей PersistentVolume зберігається (разом із даними), навіть якщо Pod завершено
Вступ до Kubernetes

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

Pod із 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 Claim-и
    • kubectl get pv показує всі розгорнуті Persistent Volume-и
    • Як зазвичай, kubectl apply -f <manifest> можна використати, щоб розгорнути ресурси сховища, оголошені в маніфестах.
Вступ до Kubernetes

Давайте потренуємось!

Вступ до Kubernetes

Preparing Video For Download...