Пользователи облачной учетной записи vRealize Automation Google Cloud Platform (GCP) могут настраивать подсистемы балансировки нагрузки для поддержки настраиваемых решений, в том числе решений высокой доступности.
Для выполнения определенных требований пользователи облачной учетной записи vRealize Automation GCP могут настраивать некоторые параметры конфигурации подсистемы балансировки нагрузки. Эти функции позволяют поддерживать инфраструктуру предоставления, например для платформ SAP NetWeaver и SAP Hana.
Настройка конфигурации подсистемы балансировки нагрузки высокой доступности с помощью облачной учетной записи GCP
Для поддержки определенных требований, например высокой доступности, пользователи vRealize Automation с облачной учетной записью GCP могут настраивать некоторые параметры настройки подсистемы балансировки нагрузки. Эти функции позволяют поддерживать инфраструктуру предоставления, например для платформ SAP NetWeaver и SAP Hana.
Эта конфигурация позволяет развертывать разные экземпляры подсистемы балансировки нагрузки в разных зонах доступности. Для этого в GCP требуется настроить следующие компоненты.
- Резервирование виртуальных IP-адресов
- Подготовка проверок работоспособности
- Создание правила брандмауэра для поддержки проверок работоспособности
После настройки на стороне GCP необходимо настроить соответствующие компоненты в vRealize Automation, как описано ниже.
- Создайте облачную учетную запись GCP, если она отсутствует.
- Настройте сопоставления конфигураций ресурсов и образов в соответствии со своей средой.
- Создайте сетевой профиль по умолчанию и пометьте его тегом, чтобы его можно было вызывать из облачного шаблона.
- Создайте зоны доступности Compute и пометьте их соответствующими тегами. Они позволяют потребовать от vRealize Automation предоставлять экземпляры и группы экземпляров для конкретных зон доступности в облачном шаблоне.
После настройки всех этих компонентов можно перейти на вкладку Cloud Assembly Design и создать облачный шаблон. Этот шаблон должен моделировать соответствующую конфигурацию подсистемы балансировки нагрузки со спецификациями для проверки работоспособности, а также экземпляры и группы экземпляров по мере необходимости. Для обеспечения высокой доступности необходимо настроить несколько подсистем балансировки нагрузки. В облачном шаблоне должны быть определены соответствующие виртуальные машины и зоны доступности, в которых они должны быть развернуты.
В следующем примере облачного шаблона показан вариант настройки конфигурации подсистемы балансировки нагрузки высокой доступности для NetWeaver.
formatVersion: 1 inputs: {} resources: Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP port: 1000 instancePort: 1000 network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false fallbackInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_2.resourceName} Cloud_LoadBalancer_2: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP port: 1000 instancePort: 1000 network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName} fallbackInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_1.resourceName} Cloud_GCP_Machine_2: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-b Cloud_Network_1: type: Cloud.Network properties: networkType: existing constraints: - tag: default Cloud_GCP_Machine_1: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-a
Дополнительные параметры настройки подсистемы балансировки нагрузки
С помощью конфигураций облачных шаблонов пользователи vRealize Automation могут настроить следующие дополнительные параметры конфигурации подсистемы балансировки нагрузки.
- Общий доступ подсистем балансировки нагрузки к группам экземпляров
- Настройка групп экземпляров аварийного переключения
- Настройка подсистем балансировки нагрузки для приема трафика по всем портам
Общий доступ к группам экземпляров
Чтобы предоставить подсистемам балансировки нагрузки общий доступ к группам экземпляров, его нужно явно объявить в схеме элементов. Поскольку в схеме элементов нет прямого доступа к группам экземпляров, клиенты должны использовать свойство useInstanceGroupsFrom
. Это позволит vRealize Automation подготовить первую подсистему балансировки нагрузки и повторно использовать группы экземпляров в других подсистемах балансировки нагрузки.
В следующем примере показано, как с помощью облачного шаблона настроить две подсистемы балансировки нагрузки, где вторая подсистема использует группы экземпляров первой подсистемы.
Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false Cloud_LoadBalancer_2: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName}
Настройка групп экземпляров аварийного переключения
Чтобы для каждой подсистемы балансировки нагрузки GCP настроить группы экземпляров аварийного переключения, об этом нужно явно объявить в облачном шаблоне. Поскольку в шаблоне нет прямого доступа к группам экземпляров, потребуется использовать свойство failoverInstanceGroupsByInstanceNames
, которое указывает vRealize Automation найти группу экземпляров по машине, входящей в эту группу экземпляров.
В следующем примере показана конфигурация подсистемы балансировки нагрузки, в которой имеются одна основная группа экземпляров и одна группа экземпляров для аварийного переключения.
Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false failoverInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_2.resourceName}
Настройка трафика по всем портам
Чтобы настроить прием трафика подсистемой балансировки нагрузки по всем портам, можно не указывать свойство порта конфигурации маршрута. Пример облачного шаблона, в котором используются три новых функции и предоставляется инфраструктура для их настройки, можно найти по ссылке https://cloud.google.com/solutions/sap/docs/netweaver-ha-config-rhel#configure_the_failover_support
formatVersion: 1 inputs: {} resources: Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false failoverInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_2.resourceName} address: 10.132.0.72 Cloud_LoadBalancer_2: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName} failoverInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_1.resourceName} address: 10.132.0.64 Cloud_GCP_Machine_2: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-c Cloud_Network_1: type: Cloud.Network properties: networkType: existing constraints: - tag: default Cloud_GCP_Machine_1: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-b