Los administradores de nube pueden aprovechar el complemento de Google Cloud Platform (GCP) para crear equilibradores de carga que admitan soluciones personalizadas, incluida la alta disponibilidad.
Puede configurar varios aspectos de los ajustes del equilibrador de carga para admitir requisitos específicos. Estas funciones pueden admitir infraestructura de aprovisionamiento para SAP NetWeaver y SAP Hana, por ejemplo. Esta configuración permite implementar diferentes instancias de equilibrador de carga en diferentes zonas de disponibilidad.
- Cree una cuenta de nube de GCP si no dispone de una.
- Configure las asignaciones de imagen y de tipo.
- Cree un perfil de red predeterminado.
- Cree zonas de disponibilidad de recursos informáticos y etiquételas correctamente. Estas etiquetas le permiten aprovisionar instancias y grupos de instancias para zonas de disponibilidad específicas en una plantilla.
- La plantilla debe modelar la configuración adecuada del equilibrador de carga con especificaciones para comprobaciones de estado, instancias, grupos de instancias, servicios de back-end, reglas de reenvío y firewalls.
- La plantilla también debe especificar las máquinas virtuales y las zonas de disponibilidad en las que se deben implementar.
Configurar un equilibrador de carga TCP interno
Esta plantilla de ejemplo utiliza auxiliares de asignación para proporcionar lógica de asignación a varios recursos. La plantilla contiene dos instancias, grupos de instancias, un recurso de comprobación de estado, un recurso de firewall, un recurso de servicio de back-end y un recurso de regla de reenvío.
Después de implementar esta plantilla, puede iniciar sesión en la consola de Google Cloud para filtrar y elegir las instancias que desea agregar al grupo de instancias. Solo se mostrarán como opciones las instancias de la misma zona que el grupo de instancias. Consulte Grupos de instancias en la consola de Google Cloud.
formatVersion: 1 inputs: suffix: type: string title: '' resources: Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Compute_1: type: Allocations.Compute properties: accountType: gcp constraints: - tag: zone-a Allocations_Compute_2: type: Allocations.Compute properties: constraints: - tag: zone-b Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: medium Idem_GCP_COMPUTE_NETWORK_1: type: Idem.GCP.COMPUTE.NETWORK properties: name: network-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} auto_create_subnetworks: false Idem_GCP_COMPUTE_SUBNETWORK_1: type: Idem.GCP.COMPUTE.SUBNETWORK properties: name: subnetwork-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id} region: ${resource.Allocations_Compute_1.selectedRegion.name} ip_cidr_range: '10.0.10.0/24' Idem_GCP_COMPUTE_INSTANCE_1: type: Idem.GCP.COMPUTE.INSTANCE properties: name: vm-doc-1-${input.suffix} zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} can_ip_forward: false project: ${resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project} network_interfaces: - name: nic0 stack_type: IPV4_ONLY subnetwork: ${Idem_GCP_COMPUTE_SUBNETWORK_1.resource_id} disks: - initialize_params: disk_name: disk-doc-boot-1-${input.suffix} source_image: ${resource.Allocations_Image_1.selectedImageId} disk_size_gb: 12 disk_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-standard'} boot: true auto_delete: true machine_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName} tags: items: - net-tag-1 - net-tag-2 Idem_GCP_COMPUTE_INSTANCE_2: type: Idem.GCP.COMPUTE.INSTANCE properties: name: vm-doc-2-${input.suffix} zone: ${resource.Allocations_Compute_2.selectedPlacementCompute.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} can_ip_forward: false project: ${resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project} network_interfaces: - name: nic0 stack_type: IPV4_ONLY subnetwork: ${Idem_GCP_COMPUTE_SUBNETWORK_1.resource_id} disks: - initialize_params: disk_name: disk-doc-boot-2-${input.suffix} source_image: ${resource.Allocations_Image_1.selectedImageId} disk_size_gb: 12 disk_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-standard'} boot: true auto_delete: true machine_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_2.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName} tags: items: - net-tag-1 - net-tag-2 Idem_GCP_COMPUTE_INSTANCE_GROUP_1: type: Idem.GCP.COMPUTE.INSTANCE_GROUP properties: name: ig-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id} Idem_GCP_COMPUTE_INSTANCE_GROUP_2: type: Idem.GCP.COMPUTE.INSTANCE_GROUP properties: name: ig-doc-2-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} zone: ${resource.Allocations_Compute_2.selectedPlacementCompute.id} network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id} Idem_GCP_COMPUTE_HEALTH_CHECK_1: type: Idem.GCP.COMPUTE.HEALTH_CHECK properties: name: hc-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} type_: TCP check_interval_sec: 10 timeout_sec: 10 unhealthy_threshold: 2 healthy_threshold: 2 tcp_health_check: port: 80 proxy_header: NONE Idem_GCP_COMPUTE_FIREWALL_1: type: Idem.GCP.COMPUTE.FIREWALL properties: name: f-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id} direction: INGRESS target_tags: - net-tag-1 - net-tag-2 allowed: - ip_protocol: tcp ports: - ${resource.Idem_GCP_COMPUTE_HEALTH_CHECK_1.tcp_health_check.port} Idem_GCP_COMPUTE_BACKEND_SERVICE_1: type: Idem.GCP.COMPUTE.BACKEND_SERVICE properties: name: bs-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} health_checks: - ${resource.Idem_GCP_COMPUTE_HEALTH_CHECK_1.resource_id} load_balancing_scheme: INTERNAL region: ${resource.Allocations_Compute_1.selectedRegion.id} network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id} failover_policy: drop_traffic_if_unhealthy: true disable_connection_drain_on_failover: true failover_ratio: 1 backends: - group: ${resource.Idem_GCP_COMPUTE_INSTANCE_GROUP_1.resource_id} - group: ${resource.Idem_GCP_COMPUTE_INSTANCE_GROUP_2.resource_id} failover: true Idem_GCP_COMPUTE_FORWARDING_RULE_1: type: Idem.GCP.COMPUTE.FORWARDING_RULE properties: ip_protocol: TCP name: fr-doc-1-${input.suffix} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} load_balancing_scheme: INTERNAL backend_service: ${resource.Idem_GCP_COMPUTE_BACKEND_SERVICE_1.resource_id} all_ports: true region: ${resource.Allocations_Compute_1.selectedRegion.id} subnetwork: ${Idem_GCP_COMPUTE_SUBNETWORK_1.resource_id} ip_address: '10.0.10.102'