Базы данных в Kubernetes
Александр Чистяков
vdsina.ru, евангелист
Очень краткое содержание
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 2 / 77
• Отказ от ответственности
• Зачем?
• План развертывания
• Примеры использования
• Как мы ходили в горы и упали (*)
Отказ от ответственности
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 3 / 77
• Я не психотерапевт и не знаю, можно ли вам
Зачем?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 4 / 77
• Унификация инфраструктуры (WAT?)
Зачем?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 5 / 77
• Унификация инфраструктуры
• (Развертывание, мониторинг, обсервабилити,
управление жизненным циклом)
Зачем?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 6 / 77
• Унификация инфраструктуры
• (Развертывание, мониторинг, обсервабилити,
управление жизненным циклом)
• Антикитерский механизм
Зачем?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 7 / 77
• Унификация инфраструктуры
• (Развертывание, мониторинг, обсервабилити,
управление жизненным циклом)
• Антикитерский механизм
• (Обсудим это позже)
План развертывания - история
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 8 / 77
• Я начал эксперименты в июне 2018-го
План развертывания - история
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 9 / 77
• Я начал эксперименты в июне 2018-го
• В то время логичным выбором был Helm
План развертывания - история
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 10 / 77
• Я начал эксперименты в июне 2018-го
• В то время логичным выбором был Helm
План развертывания - Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 11 / 77
• Найти нужный chart
План развертывания - Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 12 / 77
• Найти нужный chart
• Переопределить нужные values
План развертывания - Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 13 / 77
• Найти нужный chart
• Переопределить нужные values
• Применить
План развертывания - Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 14 / 77
• Найти нужный chart
• Переопределить нужные values
• Применить
• Еще надо где-то хранить состояние (данные)
Где хранить данные?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 15 / 77
• Если вы уже в облаке - храните в облаке
Где хранить данные?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 16 / 77
• Если вы уже в облаке - храните в облаке
• (AWS, Google Cloud)
Где хранить данные?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 17 / 77
• Если вы уже в облаке - храните в облаке
• (AWS, Google Cloud)
• Если on-prem - храните на локальных дисках
Плюсы локальных дисков
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 18 / 77
• Это просто
Плюсы локальных дисков
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 19 / 77
• Это просто
• Не требует создания распределенного
хранилища
Плюсы локальных дисков
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 20 / 77
• Это просто
• Не требует создания распределенного
хранилища
• Не требует дополнительного обслуживания
Минусы локальных дисков
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 21 / 77
• Отказоустойчивость и масштабирование
делаются извне
Минусы локальных дисков
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 22 / 77
• Отказоустойчивость и масштабирование
делаются извне
• Данные хранятся на тех же мощностях, что и
кластер
Минусы локальных дисков
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 23 / 77
• Отказоустойчивость и масштабирование
делаются извне
• Данные хранятся на тех же мощностях, что и
кластер
• В случае потери метаинформации найти, где
было что, очень сложно
Другие варианты on-prem
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 24 / 77
• GlusterFS
Другие варианты on-prem
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 25 / 77
• GlusterFS
• Ceph
Другие варианты on-prem
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 26 / 77
• GlusterFS
• Ceph
• rook.io (Ceph в том же K8s кластере)
Другие варианты on-prem
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 27 / 77
• GlusterFS
• Ceph
• rook.io (Ceph в том же K8s кластере)
• (Последнее я сам не пробовал и советовать
не могу)
Другие варианты on-prem
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 28 / 77
• GlusterFS
• Ceph
• rook.io (Ceph в том же K8s кластере)
• (Последнее я сам не пробовал и советовать
не могу)
• rook.io использует Флант
Helm - Stolon
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 29 / 77
• Stolon - как Patroni, но на Go
Helm - Stolon
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 30 / 77
• Stolon - как Patroni, но на Go
• github.com/alexclear/k8s-stolon-lab
Helm - Patroni
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 31 / 77
• Patroni - как Stolon, но на Python
Helm - Patroni
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 32 / 77
• Patroni - как Stolon, но на Python
• github.com/alexclear/k8s-patroni-lab
Helm - XtraDB
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 33 / 77
• XtraDB - как Galera, но от Percona
Helm - XtraDB
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 34 / 77
• XtraDB - как Galera, но от Percona
• github.com/alexclear/k8s-percona-xtradb-
cluster-lab
Helm - EFK
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 35 / 77
• EFK - как ELK, только без L
Helm - EFK
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 36 / 77
• EFK - как ELK, только без L
• github.com/alexclear/k8s-freehck-efk-lab
А что, если?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 37 / 77
• Если мы хотим делать бэкапы?
А что, если?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 38 / 77
• Если мы хотим делать бэкапы?
• Если мы хотим автоматически экспортировать
дэшборд?
А что, если?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 39 / 77
• Если мы хотим делать бэкапы?
• Если мы хотим автоматически экспортировать
дэшборд?
• Если мы хотим автоматически апргрейдить
минорные версии?
А что, если?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 40 / 77
• Если мы хотим делать бэкапы?
• Если мы хотим автоматически экспортировать
дэшборд?
• Если мы хотим автоматически апргрейдить
минорные версии?
• Пересмотрим план развертывания
План развертывания - не Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 41 / 77
• Оператор = CRD + контроллер
План развертывания - не Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 42 / 77
• Оператор = CRD + контроллер
• CRD позволяет добавить в YAML что-то свое
План развертывания - не Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 43 / 77
• Оператор = CRD + контроллер
• CRD позволяет добавить в YAML что-то свое
• Контроллер управляет жизненным циклом
этого чего-то
План развертывания - не Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 44 / 77
• Оператор = CRD + контроллер
• CRD позволяет добавить в YAML что-то свое
• Контроллер управляет жизненным циклом
этого чего-то
• Контроллер - программа, обычно, на Go
План развертывания - не Helm
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 45 / 77
• Оператор = CRD + контроллер
• CRD позволяет добавить в YAML что-то свое
• Контроллер управляет жизненным циклом
этого чего-то
• Контроллер - программа, обычно, на Go
• (Работает оперейшнс инженером)
План развертывания - операторы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 46 / 77
• В муках найти работающий оператор
План развертывания - операторы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 47 / 77
• В муках найти работающий оператор
• Установить, используя Helm
План развертывания - операторы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 48 / 77
• В муках найти работающий оператор
• Установить, используя Helm
• Наслаждаться использованием CRD
Операторы - Cassandra
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 49 / 77
• github.com/alexclear/vagrant-k8s-freehck-
cassandra-lab
Как выбрать оператор?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 50 / 77
• Попробовать первый
Как выбрать оператор?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 51 / 77
• Попробовать первый
• Работает - не трогать
Как выбрать оператор?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 52 / 77
• Попробовать первый
• Работает - не трогать
• Не работает ни один - починить
Операторы - Redis
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 53 / 77
• github.com/alexclear/vagrant-k8s-freehck-
redis-lab
Операторы - PostgreSQL
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 54 / 77
• github.com/alexclear/vagrant-k8s-freehck-
postgres-lab
Как выбрать оператор?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 55 / 77
• Тот, производителя которого вы знаете
Как выбрать оператор?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 56 / 77
• Тот, производителя которого вы знаете
• Тот, который проще развернуть
Операторы - ClickHouse
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 57 / 77
• Не успел посмотреть, будет через неделю
Какие еще операторы есть?
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 58 / 77
• Тысячи их!
Как мы ходили в горы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 59 / 77
• У нас был кластер K8s с хранилищем на
локальных дисках
Как мы ходили в горы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 60 / 77
• У нас был кластер K8s с хранилищем на
локальных дисках
• В нем EFK на каждой ноде для логов
Как мы ходили в горы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 61 / 77
• У нас был кластер K8s с хранилищем на
локальных дисках
• В нем EFK на каждой ноде для логов
• K8s мастер был один, в виртуалке на
каком-то левом хосте
Как мы ходили в горы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 62 / 77
• У нас был кластер K8s с хранилищем на
локальных дисках
• В нем EFK на каждой ноде для логов
• K8s мастер был один, в виртуалке на
каком-то левом хосте
• Я решил улучшить этот хост путем
переустановки
Как мы ходили в горы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 63 / 77
• У нас был кластер K8s с хранилищем на
локальных дисках
• В нем EFK на каждой ноде для логов
• K8s мастер был один, в виртуалке на
каком-то левом хосте
• Я решил улучшить этот хост путем
переустановки
• Данные было проще забыть, чем
восстановить
И упали
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 64 / 77
• Тот же кластер (версия 2.0), тот же EFK
И упали
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 65 / 77
• Тот же кластер (версия 2.0), тот же EFK
• Напомню, под ElasticSearch на каждой ноде
И упали
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 66 / 77
• Тот же кластер (версия 2.0), тот же EFK
• Напомню, под ElasticSearch на каждой ноде
• Локальные диски, раздел / во весь диск
И упали
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 67 / 77
• Тот же кластер (версия 2.0), тот же EFK
• Напомню, под ElasticSearch на каждой ноде
• Локальные диски, раздел / во весь диск
Шекспир и племянники
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 68 / 77
• Место начинает заканчиваться на какой-то
ноде
Шекспир и племянники
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 69 / 77
• Место начинает заканчиваться на какой-то
ноде
• Достигается high watermark
Шекспир и племянники
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 70 / 77
• Место начинает заканчиваться на какой-то
ноде
• Достигается high watermark
• kubelet гасит ноду целиком
Шекспир и племянники
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 71 / 77
• Место начинает заканчиваться на какой-то
ноде
• Достигается high watermark
• kubelet гасит ноду целиком
• Данные едут на соседнюю ноду
Шекспир и племянники
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 72 / 77
• Место начинает заканчиваться на какой-то
ноде
• Достигается high watermark
• kubelet гасит ноду целиком
• Данные едут на соседнюю ноду
• Бармен, повторите!
Шекспир и племянники
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 73 / 77
• Место начинает заканчиваться на какой-то
ноде
• Достигается high watermark
• kubelet гасит ноду целиком
• Данные едут на соседнюю ноду
• Бармен, повторите!
• Все данные из ES пришлось выкинуть целиком
Постпостмортем
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 74 / 77
• Если вы провижните каталоги с данными с
тех же дисков, где находится kubelet, то вам
будет исключительно весело
Постпостмортем
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 75 / 77
• Если вы провижните каталоги с данными с
тех же дисков, где находится kubelet, то вам
будет исключительно весело
• Исключительно весело вам будет теперь
всегда!
Выводы
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 76 / 77
• Вверх по бесконечной лестнице абстракций
заберутся не только лишь все
• A new study shows that death rates increased
for middle-aged people of all racial and ethnic
groups
That’s all, folks!
Александр Чистяков, vdsina.ru Базы данных в Kubernetes 77 / 77
• alexclear@gmail.com
• https://telegram.me/lhommequipleure
• https://telegram.me/demeliorator_pod

My slides from DevOps-40 meetup Dec 2019

  • 1.
    Базы данных вKubernetes Александр Чистяков vdsina.ru, евангелист
  • 2.
    Очень краткое содержание АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 2 / 77 • Отказ от ответственности • Зачем? • План развертывания • Примеры использования • Как мы ходили в горы и упали (*)
  • 3.
    Отказ от ответственности АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 3 / 77 • Я не психотерапевт и не знаю, можно ли вам
  • 4.
    Зачем? Александр Чистяков, vdsina.ruБазы данных в Kubernetes 4 / 77 • Унификация инфраструктуры (WAT?)
  • 5.
    Зачем? Александр Чистяков, vdsina.ruБазы данных в Kubernetes 5 / 77 • Унификация инфраструктуры • (Развертывание, мониторинг, обсервабилити, управление жизненным циклом)
  • 6.
    Зачем? Александр Чистяков, vdsina.ruБазы данных в Kubernetes 6 / 77 • Унификация инфраструктуры • (Развертывание, мониторинг, обсервабилити, управление жизненным циклом) • Антикитерский механизм
  • 7.
    Зачем? Александр Чистяков, vdsina.ruБазы данных в Kubernetes 7 / 77 • Унификация инфраструктуры • (Развертывание, мониторинг, обсервабилити, управление жизненным циклом) • Антикитерский механизм • (Обсудим это позже)
  • 8.
    План развертывания -история Александр Чистяков, vdsina.ru Базы данных в Kubernetes 8 / 77 • Я начал эксперименты в июне 2018-го
  • 9.
    План развертывания -история Александр Чистяков, vdsina.ru Базы данных в Kubernetes 9 / 77 • Я начал эксперименты в июне 2018-го • В то время логичным выбором был Helm
  • 10.
    План развертывания -история Александр Чистяков, vdsina.ru Базы данных в Kubernetes 10 / 77 • Я начал эксперименты в июне 2018-го • В то время логичным выбором был Helm
  • 11.
    План развертывания -Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 11 / 77 • Найти нужный chart
  • 12.
    План развертывания -Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 12 / 77 • Найти нужный chart • Переопределить нужные values
  • 13.
    План развертывания -Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 13 / 77 • Найти нужный chart • Переопределить нужные values • Применить
  • 14.
    План развертывания -Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 14 / 77 • Найти нужный chart • Переопределить нужные values • Применить • Еще надо где-то хранить состояние (данные)
  • 15.
    Где хранить данные? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 15 / 77 • Если вы уже в облаке - храните в облаке
  • 16.
    Где хранить данные? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 16 / 77 • Если вы уже в облаке - храните в облаке • (AWS, Google Cloud)
  • 17.
    Где хранить данные? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 17 / 77 • Если вы уже в облаке - храните в облаке • (AWS, Google Cloud) • Если on-prem - храните на локальных дисках
  • 18.
    Плюсы локальных дисков АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 18 / 77 • Это просто
  • 19.
    Плюсы локальных дисков АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 19 / 77 • Это просто • Не требует создания распределенного хранилища
  • 20.
    Плюсы локальных дисков АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 20 / 77 • Это просто • Не требует создания распределенного хранилища • Не требует дополнительного обслуживания
  • 21.
    Минусы локальных дисков АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 21 / 77 • Отказоустойчивость и масштабирование делаются извне
  • 22.
    Минусы локальных дисков АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 22 / 77 • Отказоустойчивость и масштабирование делаются извне • Данные хранятся на тех же мощностях, что и кластер
  • 23.
    Минусы локальных дисков АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 23 / 77 • Отказоустойчивость и масштабирование делаются извне • Данные хранятся на тех же мощностях, что и кластер • В случае потери метаинформации найти, где было что, очень сложно
  • 24.
    Другие варианты on-prem АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 24 / 77 • GlusterFS
  • 25.
    Другие варианты on-prem АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 25 / 77 • GlusterFS • Ceph
  • 26.
    Другие варианты on-prem АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 26 / 77 • GlusterFS • Ceph • rook.io (Ceph в том же K8s кластере)
  • 27.
    Другие варианты on-prem АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 27 / 77 • GlusterFS • Ceph • rook.io (Ceph в том же K8s кластере) • (Последнее я сам не пробовал и советовать не могу)
  • 28.
    Другие варианты on-prem АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 28 / 77 • GlusterFS • Ceph • rook.io (Ceph в том же K8s кластере) • (Последнее я сам не пробовал и советовать не могу) • rook.io использует Флант
  • 29.
    Helm - Stolon АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 29 / 77 • Stolon - как Patroni, но на Go
  • 30.
    Helm - Stolon АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 30 / 77 • Stolon - как Patroni, но на Go • github.com/alexclear/k8s-stolon-lab
  • 31.
    Helm - Patroni АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 31 / 77 • Patroni - как Stolon, но на Python
  • 32.
    Helm - Patroni АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 32 / 77 • Patroni - как Stolon, но на Python • github.com/alexclear/k8s-patroni-lab
  • 33.
    Helm - XtraDB АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 33 / 77 • XtraDB - как Galera, но от Percona
  • 34.
    Helm - XtraDB АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 34 / 77 • XtraDB - как Galera, но от Percona • github.com/alexclear/k8s-percona-xtradb- cluster-lab
  • 35.
    Helm - EFK АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 35 / 77 • EFK - как ELK, только без L
  • 36.
    Helm - EFK АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 36 / 77 • EFK - как ELK, только без L • github.com/alexclear/k8s-freehck-efk-lab
  • 37.
    А что, если? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 37 / 77 • Если мы хотим делать бэкапы?
  • 38.
    А что, если? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 38 / 77 • Если мы хотим делать бэкапы? • Если мы хотим автоматически экспортировать дэшборд?
  • 39.
    А что, если? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 39 / 77 • Если мы хотим делать бэкапы? • Если мы хотим автоматически экспортировать дэшборд? • Если мы хотим автоматически апргрейдить минорные версии?
  • 40.
    А что, если? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 40 / 77 • Если мы хотим делать бэкапы? • Если мы хотим автоматически экспортировать дэшборд? • Если мы хотим автоматически апргрейдить минорные версии? • Пересмотрим план развертывания
  • 41.
    План развертывания -не Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 41 / 77 • Оператор = CRD + контроллер
  • 42.
    План развертывания -не Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 42 / 77 • Оператор = CRD + контроллер • CRD позволяет добавить в YAML что-то свое
  • 43.
    План развертывания -не Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 43 / 77 • Оператор = CRD + контроллер • CRD позволяет добавить в YAML что-то свое • Контроллер управляет жизненным циклом этого чего-то
  • 44.
    План развертывания -не Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 44 / 77 • Оператор = CRD + контроллер • CRD позволяет добавить в YAML что-то свое • Контроллер управляет жизненным циклом этого чего-то • Контроллер - программа, обычно, на Go
  • 45.
    План развертывания -не Helm Александр Чистяков, vdsina.ru Базы данных в Kubernetes 45 / 77 • Оператор = CRD + контроллер • CRD позволяет добавить в YAML что-то свое • Контроллер управляет жизненным циклом этого чего-то • Контроллер - программа, обычно, на Go • (Работает оперейшнс инженером)
  • 46.
    План развертывания -операторы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 46 / 77 • В муках найти работающий оператор
  • 47.
    План развертывания -операторы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 47 / 77 • В муках найти работающий оператор • Установить, используя Helm
  • 48.
    План развертывания -операторы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 48 / 77 • В муках найти работающий оператор • Установить, используя Helm • Наслаждаться использованием CRD
  • 49.
    Операторы - Cassandra АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 49 / 77 • github.com/alexclear/vagrant-k8s-freehck- cassandra-lab
  • 50.
    Как выбрать оператор? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 50 / 77 • Попробовать первый
  • 51.
    Как выбрать оператор? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 51 / 77 • Попробовать первый • Работает - не трогать
  • 52.
    Как выбрать оператор? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 52 / 77 • Попробовать первый • Работает - не трогать • Не работает ни один - починить
  • 53.
    Операторы - Redis АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 53 / 77 • github.com/alexclear/vagrant-k8s-freehck- redis-lab
  • 54.
    Операторы - PostgreSQL АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 54 / 77 • github.com/alexclear/vagrant-k8s-freehck- postgres-lab
  • 55.
    Как выбрать оператор? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 55 / 77 • Тот, производителя которого вы знаете
  • 56.
    Как выбрать оператор? АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 56 / 77 • Тот, производителя которого вы знаете • Тот, который проще развернуть
  • 57.
    Операторы - ClickHouse АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 57 / 77 • Не успел посмотреть, будет через неделю
  • 58.
    Какие еще операторыесть? Александр Чистяков, vdsina.ru Базы данных в Kubernetes 58 / 77 • Тысячи их!
  • 59.
    Как мы ходилив горы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 59 / 77 • У нас был кластер K8s с хранилищем на локальных дисках
  • 60.
    Как мы ходилив горы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 60 / 77 • У нас был кластер K8s с хранилищем на локальных дисках • В нем EFK на каждой ноде для логов
  • 61.
    Как мы ходилив горы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 61 / 77 • У нас был кластер K8s с хранилищем на локальных дисках • В нем EFK на каждой ноде для логов • K8s мастер был один, в виртуалке на каком-то левом хосте
  • 62.
    Как мы ходилив горы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 62 / 77 • У нас был кластер K8s с хранилищем на локальных дисках • В нем EFK на каждой ноде для логов • K8s мастер был один, в виртуалке на каком-то левом хосте • Я решил улучшить этот хост путем переустановки
  • 63.
    Как мы ходилив горы Александр Чистяков, vdsina.ru Базы данных в Kubernetes 63 / 77 • У нас был кластер K8s с хранилищем на локальных дисках • В нем EFK на каждой ноде для логов • K8s мастер был один, в виртуалке на каком-то левом хосте • Я решил улучшить этот хост путем переустановки • Данные было проще забыть, чем восстановить
  • 64.
    И упали Александр Чистяков,vdsina.ru Базы данных в Kubernetes 64 / 77 • Тот же кластер (версия 2.0), тот же EFK
  • 65.
    И упали Александр Чистяков,vdsina.ru Базы данных в Kubernetes 65 / 77 • Тот же кластер (версия 2.0), тот же EFK • Напомню, под ElasticSearch на каждой ноде
  • 66.
    И упали Александр Чистяков,vdsina.ru Базы данных в Kubernetes 66 / 77 • Тот же кластер (версия 2.0), тот же EFK • Напомню, под ElasticSearch на каждой ноде • Локальные диски, раздел / во весь диск
  • 67.
    И упали Александр Чистяков,vdsina.ru Базы данных в Kubernetes 67 / 77 • Тот же кластер (версия 2.0), тот же EFK • Напомню, под ElasticSearch на каждой ноде • Локальные диски, раздел / во весь диск
  • 68.
    Шекспир и племянники АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 68 / 77 • Место начинает заканчиваться на какой-то ноде
  • 69.
    Шекспир и племянники АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 69 / 77 • Место начинает заканчиваться на какой-то ноде • Достигается high watermark
  • 70.
    Шекспир и племянники АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 70 / 77 • Место начинает заканчиваться на какой-то ноде • Достигается high watermark • kubelet гасит ноду целиком
  • 71.
    Шекспир и племянники АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 71 / 77 • Место начинает заканчиваться на какой-то ноде • Достигается high watermark • kubelet гасит ноду целиком • Данные едут на соседнюю ноду
  • 72.
    Шекспир и племянники АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 72 / 77 • Место начинает заканчиваться на какой-то ноде • Достигается high watermark • kubelet гасит ноду целиком • Данные едут на соседнюю ноду • Бармен, повторите!
  • 73.
    Шекспир и племянники АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 73 / 77 • Место начинает заканчиваться на какой-то ноде • Достигается high watermark • kubelet гасит ноду целиком • Данные едут на соседнюю ноду • Бармен, повторите! • Все данные из ES пришлось выкинуть целиком
  • 74.
    Постпостмортем Александр Чистяков, vdsina.ruБазы данных в Kubernetes 74 / 77 • Если вы провижните каталоги с данными с тех же дисков, где находится kubelet, то вам будет исключительно весело
  • 75.
    Постпостмортем Александр Чистяков, vdsina.ruБазы данных в Kubernetes 75 / 77 • Если вы провижните каталоги с данными с тех же дисков, где находится kubelet, то вам будет исключительно весело • Исключительно весело вам будет теперь всегда!
  • 76.
    Выводы Александр Чистяков, vdsina.ruБазы данных в Kubernetes 76 / 77 • Вверх по бесконечной лестнице абстракций заберутся не только лишь все • A new study shows that death rates increased for middle-aged people of all racial and ethnic groups
  • 77.
    That’s all, folks! АлександрЧистяков, vdsina.ru Базы данных в Kubernetes 77 / 77 • alexclear@gmail.com • https://telegram.me/lhommequipleure • https://telegram.me/demeliorator_pod