Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My slides from DevOps-40 meetup Dec 2019

6 views

Published on

My slides from DevOps-40 meetup Dec 2019

Published in: Technology
  • Be the first to comment

  • Be the first to like this

My slides from DevOps-40 meetup Dec 2019

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

×