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:21] val [Вернуть обратно] |
все_что_должен_знать_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 38: | Line 45: | ||
| </code> | </code> | ||
| * Через [[Сервис PostgreSQL#Клиент psql]] убеждаемся в появлении схемы и данных приложения Keycloak | * Через [[Сервис PostgreSQL#Клиент psql]] убеждаемся в появлении схемы и данных приложения Keycloak | ||
| - | * Можно провести [[Сервис Keycloak#Базовая конфигурация]] и сделать [[Сервис PostgreSQL#pg_dump]] | + | * Провести [[Сервис Keycloak#Базовая конфигурация]] и сделать [[Сервис PostgreSQL#pg_dump]] |
| - | ===== Шаг 2. Использование PostgreSQL с Docker ===== | + | * Обсудить [[Сервис PostgreSQL#Потоковая репликация]] |
| + | * Обсудить [[Сервис PostgreSQL#Barman]] | ||
| + | |||
| + | ===== Шаг 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 62: | Line 72: | ||
| </code> | </code> | ||
| - | ===== Шаг 4. Использование CloudNativePG ===== | + | ===== Шаг 5. Использование CloudNativePG ===== |
| * Добавить оператор [[Сервис PostgreSQL#CloudNativePG]] в кластер Kubernetes | * Добавить оператор [[Сервис PostgreSQL#CloudNativePG]] в кластер Kubernetes | ||
| Line 69: | 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 85: | Line 98: | ||
| </code> | </code> | ||
| - | * Использовать [[Сервис PostgreSQL#CloudNativePG Recovery]] для восстановления кластера [[Сервис PostgreSQL#CloudNativePG]] для приложения Keycloak из резервной копии S3 [[Сервис MinIO]] | + | === Выход из строя всего кластера === |
| <code> | <code> | ||
| Line 92: | 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 98: | Line 114: | ||
| * Настроить [[Сервис PostgreSQL#CloudNativePG Monitoring]] | * Настроить [[Сервис PostgreSQL#CloudNativePG Monitoring]] | ||
| | | ||
| - | ===== Вопросы ===== | + | ===== Вопросы? ===== |
| ===== Домашнее задание ===== | ===== Домашнее задание ===== | ||
| + | * Выполнить все, что решили "обсудить" на 2-м шаге | ||