1 of 22

08.09.2025

Enterprise-разработка

Развертывание БД

Дубровец В.О., @VitDub

2 of 22

Содержание

  • PV и PVC
  • Secret
  • ConfigMap
  • Работа с Pod`ами
  • StatefulSet
  • Развертывание БД

Enterprise-разработка

Развертывание БД

2/22

3 of 22

Деплоим БД

  • Выделить место в кластере
  • Получить доступ к памяти
  • Пробросить креды БД в Pod`ы
  • Манифесты для БД

Enterprise-разработка

Развертывание БД

3/22

4 of 22

Выделяем место в кластере

PV (PersistentVolume) - сегмент памяти, выделенный кластером

​

PVC (PersistentVolumeClaim) - запрос Pod`а на использование памяти кластера, использует PV

​

Control Plane ищет PV, удовлетворяющие PVC и отдает место

​

Enterprise-разработка

Развертывание БД

4/22

5 of 22

StorageClass

Enterprise-разработка

Развертывание БД

5/22

6 of 22

PersistentVolume

Access Mode

  • ReadWriteOnce
    • Чтение/запись для одной ноды
  • ReadWriteOncePod
    • Чтение/запись для отдельного Pod`а
  • ReadOnlyMany
  • ReadWriteMany

​

PV Settings

  • local - настройки хранения на нодах
  • hostPath - аналогично для single-node кластеров
  • claimRef - ссылка на PVC, которые могут использовать PV

Enterprise-разработка

Развертывание БД

6/22

7 of 22

PersistentVolumeClaim

  • volumeName - имя PV для запроса
  • selector
    • matchLabel

Enterprise-разработка

Развертывание БД

7/22

8 of 22

Как отдать PV Pod`у?

  • volumes - подключение томов к Pod`у
    • persistentVolumeClaim
    • local
    • hostMap
    • secret
    • configMap
  • Mount path - путь в контейнере для маунта тома

Enterprise-разработка

Развертывание БД

8/22

9 of 22

Деплоим БД

  • Выделить место в кластере
  • Получить доступ к памяти
  • Пробросить креды БД в Pod`ы
  • Манифесты для БД

Enterprise-разработка

Развертывание БД

9/22

10 of 22

Пробрасываем данные

Данные чувствительные?

ConfigMap

Secret

Да

Нет

Enterprise-разработка

Развертывание БД

10/22

11 of 22

Secret

Используется для передачи конфиденциальных данных

  • Креды (логин/пароль)
  • Приватные ключи шифрования
  • Сертификаты безопасности
  • Токены доступа

​

Для каждого типа данных есть отдельный тип секретов

​

Тип по умолчанию - Opaque

Enterprise-разработка

Развертывание БД

11/22

12 of 22

Secret Payload

Enterprise-разработка

Развертывание БД

12/22

13 of 22

Передача данных из Secret

Enterprise-разработка

Развертывание БД

13/22

14 of 22

ConfigMap

Используется для передачи открытых данных

  • Конфиги
  • Хосты/адресы сервисов
  • Прочие настройки

​

В data указываются обычные данные, без base-64 кодировки

Enterprise-разработка

Развертывание БД

14/22

15 of 22

Передача данных из ConfigMap

Enterprise-разработка

Развертывание БД

15/22

16 of 22

Немного практикума

  • Создаем ConfigMap для nginx
    • Конфиг nginx
    • Конфиг веб-странички с “Hello World”
  • Передаем конфиг в Pod nginx
  • Делаем секрет для авторизации nginx
  • Идем в сервис

Enterprise-разработка

Развертывание БД

16/22

17 of 22

Деплоим БД

  • Выделить место в кластере
  • Получить доступ к памяти
  • Пробросить креды БД в Pod`ы
  • Манифесты для БД

Enterprise-разработка

Развертывание БД

17/22

18 of 22

StatefulSet

Аналог Deployment для Stateful-приложений

  • БД
  • Очереди/брокеры

​

Состоит из 3 обязательных компонентов

  • StatefulSet (Deployment)
  • PVC
  • Headless Service
    • {{service_name}}.{{namespace}}.svc.cluster.local

Enterprise-разработка

Развертывание БД

18/22

19 of 22

StatefulSet vs Deployment

Enterprise-разработка

Развертывание БД

19/22

20 of 22

Много практики

  • Разворачиваем PostgreSQL
    • Secrets
    • ConfigMap
    • StatefulSet и Headless Service
  • Подключаем БД к проекту
  • YCloud
    • Создаем инстанс БД
    • Подключаем БД к проекту

Enterprise-разработка

Развертывание БД

20/22

21 of 22

В следующей серии

  • K8s DNS
  • Ingress
  • minikube addons
  • YCloud k8s marketplace
  • YCloud DNS
  • Job
  • CronJob

Enterprise-разработка

Развертывание БД

21/22

22 of 22

08.09.2025

Enterprise-разработка

Развертывание БД

Дубровец В.О., @VitDub