This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
все_что_должен_знать_devops_про_postgresql [2025/05/12 13:35] val [Шаг 1. Знакомимся с PostgreSQL] |
все_что_должен_знать_devops_про_postgresql [2025/05/16 12:00] (current) val [Запись вебинара] |
||
---|---|---|---|
Line 16: | Line 16: | ||
===== Запись вебинара ===== | ===== Запись вебинара ===== | ||
- | * Тэги: PostgreSQ, Kubernetes, CloudNativePG | + | * https://youtu.be/cOZDowgRPwY |
+ | * https://rutube.ru/video/private/151d3c5e41168ada2155847351f58dce/ | ||
+ | * Тэги: PostgreSQL, Kubernetes, CloudNativePG | ||
===== Методическая подготовка ===== | ===== Методическая подготовка ===== | ||
* Система Kubernetes (4Gb на узел) и [[Система Kubernetes#rancher local-path-provisioner]] (default-class) | * Система Kubernetes (4Gb на узел) и [[Система Kubernetes#rancher local-path-provisioner]] (default-class) | ||
- | * [[Система Kubernetes#Добавление узла через Kubespray]] | + | * [[Система Kubernetes#Добавление узла через Kubespray]] !!! 4Gb и в haproxy !!! |
* ingress-nginx с use-forwarded-headers ([[Система Kubernetes#Работа с готовыми Charts]]) | * ingress-nginx с use-forwarded-headers ([[Система Kubernetes#Работа с готовыми Charts]]) | ||
* haproxy | * haproxy | ||
+ | ===== Шаг 1. Что у нас есть для начала ===== | ||
- | ===== Шаг 1. Знакомимся с PostgreSQL ===== | + | * [[Практические примеры Keycloak]] |
+ | * [[Видео уроки]] | ||
+ | |||
+ | |||
+ | ===== Шаг 2. Знакомимся с PostgreSQL ===== | ||
* Развернуть PostgreSQL baremetal на [[Сервис PostgreSQL#Linux Debian/Ubuntu]] на gate | * Развернуть PostgreSQL baremetal на [[Сервис PostgreSQL#Linux Debian/Ubuntu]] на gate | ||
Line 43: | Line 50: | ||
* Обсудить [[Сервис PostgreSQL#Barman]] | * Обсудить [[Сервис PostgreSQL#Barman]] | ||
- | ===== Шаг 2. Использование PostgreSQL с Docker ===== | + | ===== Шаг 3. Использование PostgreSQL с Docker ===== |
* !!! Обсудить и предложить сделать самостоятельно !!! | * !!! Обсудить и предложить сделать самостоятельно !!! | ||
- | * Развернуть сервис PostgreSQL в [[Сервис PostgreSQL#Docker]] совместно с Keycloak, через [[Сервис Keycloak#docker-compose]] (без ssl, порты 8088:8080) | + | * Развернуть сервис PostgreSQL в [[Сервис PostgreSQL#Docker]] совместно с Keycloak, через [[Сервис Keycloak#docker-compose]] (без ssl) |
- | ===== Шаг 3. Использование PostgreSQL в Kubernetes ===== | + | ===== Шаг 4. Использование PostgreSQL в Kubernetes ===== |
* Для демонстрации можно использовать [[Система Kubernetes#rancher local-path-provisioner]] как default-class | * Для демонстрации можно использовать [[Система Kubernetes#rancher local-path-provisioner]] как default-class | ||
* Развернуть сервис PostgreSQL в [[Сервис PostgreSQL#Kubernetes]] | * Развернуть сервис PostgreSQL в [[Сервис PostgreSQL#Kubernetes]] | ||
- | * Подключиться через [[Сервис PostgreSQL#Клиент psql]] и создать объекты для сервиса Keycloak (можно сделать [[Сервис PostgreSQL#pg_restore]]) | + | * Выполнить [[Сервис PostgreSQL#pg_restore]]) |
- | * Развернуть Keycloak в [[Сервис Keycloak#Kubernetes]], добавить запись в DNS, подключиться через [[Решение HAProxy]] с clientN и провести или проверить [[Сервис Keycloak#Базовая конфигурация]] | + | * Развернуть Keycloak в [[Сервис Keycloak#Kubernetes]], добавить запись в DNS, подключиться через [[Решение HAProxy]] с clientN и проверить [[Сервис Keycloak#Базовая конфигурация]] |
* Развернуть на server [[Сервис PostgreSQL#Клиент pgadmin]] и подключить к PostgreSQL в [[Сервис PostgreSQL#Kubernetes]] через port-forward | * Развернуть на server [[Сервис PostgreSQL#Клиент pgadmin]] и подключить к PostgreSQL в [[Сервис PostgreSQL#Kubernetes]] через port-forward | ||
Line 65: | Line 72: | ||
</code> | </code> | ||
- | ===== Шаг 4. Использование CloudNativePG ===== | + | ===== Шаг 5. Использование CloudNativePG ===== |
* Добавить оператор [[Сервис PostgreSQL#CloudNativePG]] в кластер Kubernetes | * Добавить оператор [[Сервис PostgreSQL#CloudNativePG]] в кластер Kubernetes | ||
Line 72: | Line 79: | ||
* Развернуть и проверить работу S3 [[Сервис MinIO]] | * Развернуть и проверить работу S3 [[Сервис MinIO]] | ||
- | * Настроить [[Сервис PostgreSQL#CloudNativePG Backup]] в него | + | * Настроить [[Сервис PostgreSQL#CloudNativePG Backup]] в него, (immediate Backup проводить после появления в архиве wal файлов, проверить наличие требуемых из backup.info) |
* Восстановить базу Keycloak из [[Сервис PostgreSQL#pg_dumpall]] | * Восстановить базу Keycloak из [[Сервис PostgreSQL#pg_dumpall]] | ||
* Настроить Keycloak в [[Сервис Keycloak#Kubernetes]] на работу с [[Сервис PostgreSQL#CloudNativePG]] | * Настроить Keycloak в [[Сервис Keycloak#Kubernetes]] на работу с [[Сервис PostgreSQL#CloudNativePG]] | ||
- | * Используя [[Сервис PostgreSQL#Плагин cnpg]], проверить отказоустойчивость, при выходе из строя и [[Система Kubernetes#Удаление узла]] | + | === Выход из строя Primary узла === |
+ | |||
+ | * [[Система Kubernetes#Удаление узла]] | ||
<code> | <code> | ||
kube1# kubectl cnpg status my-pgcluster -n my-pgcluster-ns | kube1# kubectl cnpg status my-pgcluster -n my-pgcluster-ns | ||
Line 88: | Line 98: | ||
</code> | </code> | ||
- | * Использовать [[Сервис PostgreSQL#CloudNativePG Recovery]] для восстановления кластера [[Сервис PostgreSQL#CloudNativePG]] для приложения Keycloak из резервной копии S3 [[Сервис MinIO]] | + | === Выход из строя всего кластера === |
<code> | <code> | ||
Line 95: | Line 105: | ||
</code> | </code> | ||
+ | * Использовать [[Сервис PostgreSQL#CloudNativePG Recovery]] для восстановления кластера [[Сервис PostgreSQL#CloudNativePG]] для приложения Keycloak из резервной копии S3 [[Сервис MinIO]] | ||
* Вернуть [[Сервис PostgreSQL#CloudNativePG Backup]] | * Вернуть [[Сервис PostgreSQL#CloudNativePG Backup]] | ||
+ | |||
+ | === Дополнительные возможности === | ||
* Добавить [[Сервис PostgreSQL#CloudNativePG PgBouncer]] и подключить Keycloak в [[Сервис Keycloak#Kubernetes]] через него | * Добавить [[Сервис PostgreSQL#CloudNativePG PgBouncer]] и подключить Keycloak в [[Сервис Keycloak#Kubernetes]] через него | ||
Line 101: | Line 114: | ||
* Настроить [[Сервис PostgreSQL#CloudNativePG Monitoring]] | * Настроить [[Сервис PostgreSQL#CloudNativePG Monitoring]] | ||
| | ||
- | ===== Вопросы ===== | + | ===== Вопросы? ===== |
===== Домашнее задание ===== | ===== Домашнее задание ===== | ||
+ | * Выполнить все, что решили "обсудить" на 2-м шаге |