Пользователи облачной учетной записи vRealize Automation Google Cloud Platform (GCP) могут настраивать подсистемы балансировки нагрузки для поддержки настраиваемых решений, в том числе решений высокой доступности.

Для выполнения определенных требований пользователи облачной учетной записи vRealize Automation GCP могут настраивать некоторые параметры конфигурации подсистемы балансировки нагрузки. Эти функции позволяют поддерживать инфраструктуру предоставления, например для платформ SAP NetWeaver и SAP Hana.

Настройка конфигурации подсистемы балансировки нагрузки высокой доступности с помощью облачной учетной записи GCP

Для поддержки определенных требований, например высокой доступности, пользователи vRealize Automation с облачной учетной записью GCP могут настраивать некоторые параметры настройки подсистемы балансировки нагрузки. Эти функции позволяют поддерживать инфраструктуру предоставления, например для платформ SAP NetWeaver и SAP Hana.

Эта конфигурация позволяет развертывать разные экземпляры подсистемы балансировки нагрузки в разных зонах доступности. Для этого в GCP требуется настроить следующие компоненты.

  • Резервирование виртуальных IP-адресов
  • Подготовка проверок работоспособности
  • Создание правила брандмауэра для поддержки проверок работоспособности
Установка и настройка этих компонентов в GCP описываются на странице https://cloud.google.com/solutions/sap/docs/netweaver-ha-config-rhel#configure_the_failover_support. Подробности о конфигурациях NetWeaver и Hana см. на следующих страницах.

После настройки на стороне 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