Развертывание кластера Vault HA with Consul
Некоторые серверные части хранилища, такие как Consul, предоставляют дополнительные функции координации, которые позволяют Vault работать в конфигурации высокой доступности, в то время как другие обеспечивают более надежный процесс резервного копирования и восстановления.
При работе в режиме высокой доступности серверы Vault имеют два дополнительных состояния: резервный и активный . В кластере Vault активен только один экземпляр, который обрабатывает все запросы (чтение и запись), а все резервные узлы перенаправляют запросы на активный узел.
Задержка
и пропускная способность сети
Чтобы
члены кластера оставались правильно синхронизированными, задержка сети между
зонами доступности должна составлять менее восьми миллисекунд (8 мс).
Объем
пропускной способности сети, используемой Vault и Consul, будет полностью
зависеть от моделей использования конкретного клиента. Во многих случаях даже
большой объем запросов не приведет к большому потреблению пропускной
способности сети. Однако все данные, записанные в Vault, будут реплицированы
всем членам кластера Consul.
Поскольку Vault использует только один активный узел, кластеру Vault состоящего из трех узлов кластера, может выдержать потерю двух узлов или всей зоны доступности
Основной риск доступности связан с уровнем хранения. С шестью узлами в кластере Consul, распределенными между тремя зонами доступности, настроенными как зоны резервирования Consul с тремя участниками с правом голоса и тремя членами без права голоса, эта архитектура может выдержать потерю до трех узлов Consul или потерю всей зоны доступности и оставаться доступный
Если развертывание в трех зонах доступности невозможно, одну и ту же архитектуру можно использовать в двух или одной зоне доступности за счет значительного риска для надежности в случае выхода из строя зоны доступности.
ПРИМЕЧАНИЕ. Порты для Consul RPC и трафика сплетен отличаются от портов по умолчанию в этой архитектуре.
В высокодоступном кластере Vault, использующем хранилище Consul, все данные хранятся в кластере Consul, поэтому сбой узла Vault не несет риска потери данных. Чтобы определить лидерство кластера Vault, один из серверов Vault получает блокировку в хранилище данных Consul, чтобы стать активным узлом Vault.
Если в какой-то момент лидер будет потерян, его место в качестве лидера кластера займет другой узел Vault. Чтобы допустить потерю двух узлов Vault, минимальный рекомендуемый размер кластера Vault равен трем.
Консул достигает репликации и лидерства за счет использования своих протоколов консенсуса и сплетен. В этих протоколах лидер избирается консенсусом, поэтому всегда должен существовать кворум активных серверов. Чтобы допустить потерю двух узлов из кластера Consul, минимальный рекомендуемый размер кластера Consul составляет пять узлов.
При развертывании элементов кластера Vault и Consul в рекомендуемой архитектуре в трех зонах доступности общая архитектура может выдержать потерю любой отдельной зоны доступности
В случаях, когда развертывание в трех зонах невозможно, сбой зоны доступности может привести к тому, что кластер Vault станет недоступным или кластер Consul не сможет выбрать лидера. Например, при развертывании с двумя зонами доступности сбой одной зоны доступности может привести к тому, что кластер Consul потеряет свой кворум Raft и не сможет обслуживать запросы с вероятностью 50%. В архитектуре с двумя зонами доступности, можно воспользоваться сторонними сервисами, например Pacemaker + Corosync для обеспечения работы узла кластера в двух зонах доступности одновременно.