Мы подробно обсуждали Kubernetes во второй главе. Kubernetes практически является неотъемлемой частью современного приложения, обеспечивая преимущества в развёртывании, переносимости, управляемости и масштабируемости. Кроме того, это привлекательный фреймворк для запуска баз данных — большинство поставщиков баз данных используют Kubernetes в своих облачных развёртываниях.
Однако, при условии, что ваши узлы Kubernetes работают в том же центре обработки данных, что и ваши узлы баз данных, мы считаем, что использование Kubernetes в качестве платформы баз данных для слоя приложения, основанного на Kubernetes, не является обязательным. Виды рабочих нагрузок, с которыми сталкивается база данных, сильно отличаются от рабочих нагрузок в слое приложения и возможно, что две нагрузки не будут хорошо сосуществовать, если они размещены в одном и том же кластере Kubernetes.
Стандартные настройки Kubernetes редко подходят для развёртывания баз данных. Исторически Kubernetes использовался для приложений, а не для баз данных. Для приложений выделение ресурсов ЦП (центральный процессор) и памяти имело большее значение, чем управление вводом и выводом. Поэтому многие кластеры Kubernetes, особенно на облачных платформах, настроены с экономичными дисками «хранилище по гигабайтам». Например, при создании кластера Kubernetes на платформе Google Cloud, тип диска по умолчанию для пула узлов является стандартным HDD диском, в то время как постоянный диск SSD является более подходящим вариантом для развёртывания базы данных.
И последнее, как мы видели во второй главе, кластеры Kubernetes не могут легко охватывать несколько регионов. Если вам требуется развёртывание базы данных в нескольких регионах, Kubernetes может и не подойти.
Большинство поставщиков баз данных предлагают оператор Kubernetes, который формирует логику развёртывания и управления их базовым движком в кластере Kubernetes. Если вы развёртываете базу данных на Kubernetes, рекомендуется использовать эти операторы.