Репозиторий содержит конфигурацию ресурсов Terraform для развертывания инфраструктуры для типового web-приложения, а также набор манифестов K8s и мануал по развертыванию примера такого приложения.
Архитектура разработана с прицелом на обеспечение отказоустойчивости и высокой доступности пользовательских web-приложений, размещаемых в облаке VK Cloud. При разработке учитывались функциональность и ограничения сервисов облака.
- Сетевой слой (виртуальная сеть, стандартный маршрутизатор, security-группа)
- Региональный K8s-кластер
- MultiAZ-кластер PostgreSQL
- Anycast IP-адрес
Из опционального: создаются 2 ВМ, используемые в качестве jump-хостов для задач эксплуатации, мониторинга и диагностики проблем web-приложения. Эти ВМ также могут использоваться для хостинга Registry, в которое будет загружен образ приложения с целью дальнейшего его развертывания в K8s-кластере.
В корневом каталоге репозитория представлен набор файлов конфигураций ресурсов Terraform. Для создания инфраструктуры в своем проекте в облаке VK Cloud необходимо выполнить несколько шагов
-
Установить Terraform и сконфигурировать его для работы с облаком. Для этого можете воспользоваться руководством с официально портала документации VK Cloud.
-
В корневом каталоге склонированного репозитория создайте файл creds.auto.tfvars и наполните его следующим содержимым:
provider_auth_url = "https://infra.mail.ru:35357/v3/"
provider_username = "< Логин учетной записи пользователя VK Cloud >"
provider_password = "< Пароль учетной записи пользователя VK Cloud >"
provider_project = "< ID проекта со страницы настроек проекта (вкладка Terraform) в ЛК >"
key_pair_name = "< Название ключевой пары SSH из настроек проекта в ЛК >"- В корневом каталоге репозитория выполняем инициализацию:
terraform init- Для ознакомления со списком изменений, которые будут применены, запустим команду:
terraform plan- Если никаких ошибок не было выявлено, то запускаем операцию создания инфраструктуры в соответствии с заданной конфигурацией:
terraform applyПосле успешного завершения создания инфраструктуры перейдем к развертыванию приложения в K8s-кластере.
Для развертывания типового приложения в K8s-кластере перейдите к инструкции и выполните пошагово предложенные действия.
