Кластер GKE теряет данные

Кластер GKE теряет данные

Я новичок в GCP, так что извините за невежество.

У меня есть кластер GKE из 3 узлов, на котором запущено приложение базы данных. Каждому узлу выделен стандартный постоянный диск на 100 ГБ. Однако время от времени (случалось как минимум 3 раза с августа) я обнаруживаю, что при загрузке данные теряются, а все установленные правила брандмауэра сбрасываются до значений по умолчанию.

Как я могу:

  1. Остановить удаление данных в БД
  2. предотвратить сброс правил брандмауэра

Связано ли это с модернизацией инфраструктуры?

решение1

Публикация этого ответа в качестве вики-сообщества, поскольку основная тема вопроса может оказаться немного обширной.

Не стесняйтесь расширять его.


Почему GKEкластер может терять данные?

Без конкретной информации о том, как именно приложение/рабочая нагрузка были развернуты в GKEкластере, может быть сложно определить фактическую проблему.

Стоит отметить следующее:

  • Рабочие нагрузки, которые предполагают хранение данных (например, базы данных), должны использоватьPersistent VolumesВ случае сбоя узла данные, хранящиеся на нем, PVне будут потеряны, поскольку они будут храниться на другом объекте.

PersistentVolumeРесурсы используются для управления прочным хранилищем в кластере. В GKE, PersistentVolumeкак правило, поддерживается постоянным диском.

Cloud.google.com: Kubernetes Engine: Документация: Концепции: Постоянные тома

Существует руководство по развертыванию WordPress на GKE с Persistent Disks и Cloud SQL. Его можно использовать в качестве примера для развертывания рабочей нагрузки с PVC(Persistent Disk):

  • Данные, хранящиеся на Podsмодуле, для которых не заданы Volumesнастройки, будут потеряны в случае его воссоздания.

  • Данные, хранящиеся на GKEзагрузочном диске узла, не сохраняются при обновлениях.

Изменения на загрузочном диске узла виртуальной машины не сохраняются при повторном создании узлаЧтобы сохранить изменения при повторном создании узла, используйте DaemonSet.

Cloud.google.com: Kubernetes Engine: Документация: Как: Автоматическое обновление узла: Обзор


Ссылаясь на заданный вопрос

Я новичок в GCP, так что извините за невежество.

Я рекомендую вам посетить официальную документацию GCPи GKE. Вы можете найти там много информации/руководств и примеров для подражания:

Каждому узлу выделен стандартный постоянный диск объемом 100 ГБ.

Эти диски специально используются как загрузочные диски для GKEузла, и они не должны использоваться как место для хранения данных. Вы можете использовать, Persistent Volumesкак упоминалось ранее, или выбрать локальный SSD, о котором вы можете прочитать больше, перейдя по ссылке ниже:

Однако время от времени я обнаруживаю (случалось по крайней мере 3 раза с августа), что я загружаюсь, а данные теряются.

GKEКластер и узлы не могут быть отключены. Что вы можете сделать, так это уменьшить (масштабировать) количество узлов в пуле узлов. Вы имели в виду, что вы подключаетесь к нему?

все установленные правила брандмауэра сбрасываются до значений по умолчанию.

Вам не следует перенастраивать правила брандмауэра узла GKE. Вместо этого вам следует использовать брандмауэр GCP, расположенный в Cloud Console(веб-интерфейс) -> VPC Network-> Firewall. Переустановка узла из-за обновления или сбоя узла приведет к сбросу правил брандмауэра.

Как я могу:

  1. Остановить удаление данных в БД
  2. предотвратить сброс правил брандмауэра

Связано ли это с модернизацией инфраструктуры?

GCEВы можете рассмотреть возможность использования экземпляра вместо кластера (в зависимости от конкретного варианта использования) GKE. GKE— это управляемый кластер Kubernetes, предназначенный для запуска контейнеризированных рабочих нагрузок, и некоторые его части управляются Google (например, плоскость управления).

Что касается модернизации инфраструктуры, вы можете посмотреть, что происходит при модернизации кластера, перейдя по ссылкам ниже:


Дополнительная ссылка:

Связанный контент