Creación de equilibradores de carga globales
Si tiene un sitio web de comercio electrónico o aloja una aplicación que debe permanecer accesible, es probable que le preocupe su disponibilidad y rendimiento.
Las funciones de equilibrador de carga global disponibles con IBM Cloud Internet Services ( CIS ) ayudan a mejorar la fiabilidad y escalabilidad de las aplicaciones al tiempo que ofrecen la mejor experiencia de usuario posible.
Un equilibrador de carga global distribuye el tráfico de usuarios entre varias regiones geográficas para mejorar la disponibilidad y el rendimiento.
Puede configurar un equilibrador de carga global mediante la consola, CLI, API o Terraform.
Antes de empezar
- Configurar una instancia de CIS.
- Configure su dominio en CIS.
- Identifique las direcciones IP o FQDN de los orígenes de su aplicación.
CIS puede admitir grupos de equilibradores de carga que utilicen una dirección IP privada. Sin embargo, los grupos de IP privadas no admiten servicios proxy ni comprobaciones de estado; sólo admiten el equilibrio de carga basado en DNS. Para pools con IPs públicas, las comprobaciones de estado pueden configurarse como se describe en (Paso 1: Crear una comprobación de estado ).
instalación rápida
Si ya conoce sus grupos y comprobaciones de estado, puede crearlos en línea al crear un equilibrador de carga:
-
En la consola CIS, haga clic en Fiabilidad > Balanceadores de carga globales > Grupos de orígenes y, a continuación, haga clic en Crear.
-
Especifique un nombre de agrupación, unos orígenes y seleccione una comprobación de estado.
Puede crear un nuevo chequeo aquí seleccionando Crear nuevo en el menú de la lista de Chequeos y completando la información.
-
Pulse Guardar.
Los siguientes pasos proporcionan el procedimiento completo para crear comprobaciones de estado, grupos y un equilibrador de carga global.
Creación de un equilibrador de carga global en la consola
Al abrir la página Balanceadores de carga globales (Fiabilidad > Balanceadores de carga globales ), la página muestra pestañas para Balanceadores de cargaSoftware o hardware que distribuye la carga entre un conjunto de servidores para procurar que dichos servidores no se saturen., Grupos de orígenes, Comprobaciones de estadoProceso que supervisa los recursos y las condiciones de sistema para determinar si el sistema se está ejecutando de forma eficaz. y Eventos. Estas pestañas muestran los equilibradores de carga globales y sus componentes a medida que los crea o actualiza.
En el siguiente procedimiento paso a paso, aprenderás a configurar un entorno similar al del siguiente diagrama. En este ejemplo, los recursos de la aplicación se despliegan en dos centros de datos (EE.UU. Oeste y EE.UU. Este), con usuarios que acceden a la aplicación globalmente. Es posible que los usuarios estén accediendo a esta aplicación desde todo el mundo.
Para crear y configurar un balanceador de carga global en la consola, siga estos pasos:
Paso 1: Crear un chequeo (opcional)
Las comprobaciones de estado son archivos adjuntos opcionales para agrupaciones de origen. Se ejecutan en un intervalo configurable para comprobar un cuerpo de respuesta o código de estado específico y supervisar el estado de la piscina. Después de crear una comprobación de estado, puede añadirla a una agrupación de origen nueva o existente.
Si no defines ninguna comprobación de estado personalizada, CIS utiliza / como ruta de comprobación de estado predeterminada.
-
En la consola CIS, haga clic en Fiabilidad > Balanceadores de carga globales > Comprobaciones de estado y, a continuación, haga clic en Crear.
-
Configure los campos siguientes:
- Nombre: Nombre del chequeo.
- Tipo de monitor: el protocolo que se debe utilizar para la comprobación de estado. (Por defecto:
HTTP). - Puerto: Haz clic en las flechas para aumentar o disminuir el número de puerto.
- Ruta: la ruta del punto final en el que se va a realizar la comprobación de estado. (Por defecto:
/)
-
Expanda Opciones avanzadas para configurar:
- Intervalo de prueba: el intervalo (en segundos) entre cada comprobación de estado. Unos intervalos más cortos pueden mejorar el tiempo de conmutación por error, pero aumentan la carga en los servidores de origen, ya
que las comprobaciones proceden de múltiples ubicaciones. (Por defecto:
60). - Método: el método HTTP que se debe utilizar para la comprobación del estado. (Por defecto:
GET) - Tiempo de espera (segundos): El tiempo antes de marcar el chequeo como fallido. (Por defecto:
5) - Número de reintentos: el número de reintentos que se deben realizar si se produce un tiempo de espera antes de marcar el origen como no operativo. CIS intenta reintentar inmediatamente. (Por defecto:
2) - Códigos de respuesta esperados: el código de respuesta o rango de códigos de respuesta esperados de HTTP para la comprobación de estado. Este valor debe estar comprendido entre 200 y 299, con caracteres comodín indicados
mediante un punto (.)
x. - Cuerpo de la respuesta: una subcadena, sin distinción entre mayúsculas y minúsculas, con la que se realizará la búsqueda en el cuerpo de la respuesta. Si CIS no encuentra esta cadena, marca el origen como no saludable.
- Umbral saludable: El número de respuestas de comprobación de estado correctas consecutivas que CIS debe recibir antes de marcar un origen como correcto. Este ajuste impide que CIS marque un origen sano después de una
única sonda con éxito y ayuda a evitar el aleteo durante la recuperación intermitente. (Por defecto:
1) - Umbral no saludable: El número de respuestas de comprobación de estado fallidas consecutivas que deben producirse antes de que CIS marque un origen como no saludable. Esta configuración ayuda a evitar que problemas temporales
de la red o de la aplicación activen inmediatamente la conmutación por error. (Por defecto:
1) - Seguir redirecciones: Determina si el chequeo sigue automáticamente las respuestas de redirección de HTTP 3xx. Cuando está activada, la comprobación de estado continúa hasta la ubicación redirigida y evalúa la respuesta final según los criterios de éxito configurados (código de estado y cuerpo de respuesta opcional). Cuando está desactivada, las respuestas de redirección se evalúan directamente con los códigos de respuesta esperados.
- Intervalo de prueba: el intervalo (en segundos) entre cada comprobación de estado. Unos intervalos más cortos pueden mejorar el tiempo de conmutación por error, pero aumentan la carga en los servidores de origen, ya
que las comprobaciones proceden de múltiples ubicaciones. (Por defecto:
-
Despliega Configurar encabezados de solicitud (opcional) para añadir y configurar los encabezados de solicitud de HTTP que se enviarán en la comprobación de estado.
Establecer un encabezado Host de forma predeterminada. El encabezado
User-Agentno se puede modificar. -
Pulse Crear para completar la configuración de comprobación de estado.
Trabajar con eventos de chequeo médico
Utilice la pestaña Eventos para supervisar e investigar los cambios en el estado de salud de los orígenes y grupos asociados a un equilibrador de carga global. Los eventos de comprobación de estado representan los cambios de estado que detectan las comprobaciones de estado configuradas. Cuando cambia el estado de un origen, aparece una entrada de evento correspondiente con detalles.
Están disponibles las siguientes opciones de filtrado:
- Fecha de inicio: Filtra los eventos por el inicio de un intervalo de fechas seleccionado.
- Fecha final: Filtra los eventos por el final de un intervalo de fechas seleccionado.
- Salud del origen: Filtra los eventos por estado del origen (por ejemplo, Sano o Crítico).
- Orígenes: Filtra los eventos por un origen específico.
- Estado de la piscina: Filtra los eventos por estado del pool (por ejemplo, Sano o Crítico).
- Grupos: Filtra los eventos por un pool de origen específico.
Para ver los eventos de comprobación de estado, haga clic en Fiabilidad > Balanceadores de carga globales > Eventos.
Paso 2: Crear un grupo de orígenes
Es necesaria al menos una agrupación para cada equilibrador de carga suministrado. Agrupa los orígenes para que los utilice el equilibrador de carga.
-
En la consola CIS, haga clic en Fiabilidad > Balanceadores de carga globales > Grupos de orígenes y, a continuación, haga clic en Crear.
-
Seleccione si desea activar este grupo. Las piscinas para discapacitados no reciben tráfico y CIS las excluye de los controles sanitarios. Cuando se desactiva una agrupación, los equilibradores de carga que la utilizan pasan a la siguiente agrupación, si existe.
-
Configure los campos obligatorios:
- Nombre: Un nombre abreviado (etiqueta) para la agrupación. Solo se permiten caracteres alfanuméricos, guiones y subrayados.
- Orígenes: La lista de orígenes de esta agrupación. CIS distribuye el tráfico dirigido a este grupo entre todos los orígenes que se encuentran actualmente en buen estado, siempre que el propio grupo esté en buen estado.
Si tus servidores de aplicaciones se encuentran detrás de un equilibrador de carga local, como un equilibrador de carga de IBM Cloud, añade el nombre de dominio completo (FQDN) o la IP virtual de tu equilibrador de carga como origen, en lugar de añadir tus servidores individuales.
-
Configure los campos opcionales según sea necesario:
- Umbral de orígenes en buen estado: El número mínimo de orígenes que deben estar en buen estado para que esta agrupación sirva tráfico. Si el número de orígenes en buen estado cae por debajo de esta cifra, CIS marca el
grupo como defectuoso y realiza una conmutación por error al siguiente grupo disponible. (Por defecto:
1) - Región de comprobación de estado del grupo: región desde la que la comprobación de estado realiza la supervisión.
- Chequeo médico: La comprobación de estado que se utilizará para comprobar los orígenes dentro de este grupo. (Por defecto: sin comprobación de estado )
- Umbral de orígenes en buen estado: El número mínimo de orígenes que deben estar en buen estado para que esta agrupación sirva tráfico. Si el número de orígenes en buen estado cae por debajo de esta cifra, CIS marca el
grupo como defectuoso y realiza una conmutación por error al siguiente grupo disponible. (Por defecto:
-
Haga clic en Guardar para completar la configuración del grupo de origen.
La agrupación de origen aparece inicialmente como En mal estado. Este estado cambia a En buen estado tras una comprobación de estado satisfactoria realizada por CIS. Es posible que necesite renovar el navegador para ver el cambio de estado.
Defina tantas agrupaciones de origen como conjuntos de servidores de aplicaciones tenga. Estos conjuntos de servidores pueden estar dentro de la misma región o en regiones geográficas distintas.
Paso 3: Configurar el equilibrador de carga global
Los equilibradores de carga ayudan a distribuir el tráfico entre varios grupos de origen.
-
En la consola CIS, haga clic en Fiabilidad > Balanceadores de carga globales > Balanceadores de carga y, a continuación, haga clic en Crear.
-
Habilite el equilibrador de carga.
-
En el caso de Proxy, comprueba si el tráfico pasa por las funciones de seguridad y rendimiento en CIS. 'Desactivado' ignora estos sistemas.
-
Configure la siguiente información:
-
Nombre (opcional): El nombre a asociar con su balanceador de carga.
-
TTL: tiempo de duración (TTL) de la entrada DNS para la dirección IP devuelta por este equilibrador de carga. Esta opción solo se aplica a los equilibradores de carga sin proxy; de lo contrario, adopta
Automaticcomo valor predeterminado. -
Dirección del tráfico: Controla cómo se distribuyen las peticiones entrantes de los usuarios entre los grupos de origen configurados, determinando el algoritmo que CIS utiliza para decidir qué centro de datos (grupo) sirve cada petición. Para más información, consulte Optimización de la dirección del tráfico.
-
Afinidad de sesiones: Direcciona siempre a través de la misma instancia de rendimiento y de métricas. Esta opción solo está disponible si el proxy está activado.
-
Rutas geográficas: una asignación de códigos de región o país a una lista de grupos (ordenados según su prioridad de conmutación por error) para la región especificada. Cualquier región no esté definida explícitamente vuelve a utilizar las agrupaciones predeterminadas.
IBM difieren de las que utiliza CIS. Para más información sobre las regiones geográficas, consulte Dirección geográfica.
-
-
Haz clic en Crear para completar la configuración del equilibrador de carga global.
Paso 4: Verificar la conectividad
Por último, verifique la conectividad con su aplicación accediendo al FQDN URL en un navegador.
Para obtener más información sobre la actualización y eliminación de balanceadores de carga globales, comprobaciones de estado y grupos de orígenes en la consola, consulte Gestión de equilibradores de carga globales.
Configuración de los equilibradores de carga globales desde la CLI
Para crear y configurar un equilibrador de carga global desde la CLI, siga estos pasos en este orden:
- Realizar una comprobación del estado. (opcional)
- Crear una agrupación de origen.
- Cree un equilibrador de carga global.
Paso 1: Creación de una comprobación de estado desde la CLI (opcional)
Las comprobaciones de estado son archivos adjuntos opcionales para agrupaciones de origen. Si no defines ninguna comprobación de estado personalizada, el sistema utiliza / como ruta de comprobación de estado predeterminada.
Para realizar una comprobación de estado desde la CLI, ejecuta el siguiente comando :
ibmcloud cis glb-monitor-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Donde:
--json-
El archivo JSON o cadena JSON que se utiliza para describir una comprobación de estado. Obligatorio.
- Los campos obligatorios en los datos JSON son
type.type: El protocolo que se debe utilizar para la comprobación de estado. Los valores válidos sonHTTP,HTTPS, yTCP.
- Los campos opcionales son
description,timeout,retries,interval.description: Descripción de la comprobación de estado.timeout: El tiempo de espera (en segundos) antes de marcar la comprobación de estado como fallida.retries: El número de reintentos que se realizarán si se produce un tiempo de espera antes de que el origen se marque como no operativo.interval: El intervalo entre cada comprobación de estado.
- Para la comprobación de estado de tipo
TCP. Los campos obligatorios adicionales sonport.port: El puerto de TCP que se debe utilizar para la comprobación de estado.
- Para la comprobación de estado de tipo
HTTP/HTTPS. Los campos opcionales adicionales sonport,expected_body,expected_codes,method,path,header,follow_redirects,allow_insecure.port: El puerto de TCP que se debe utilizar para la comprobación de estado.expected_body: Una subcadena, sin distinción entre mayúsculas y minúsculas, que se debe buscar en el cuerpo de la respuesta.expected_codes: El código de respuesta HTTP esperado o el rango de códigos de la comprobación de estado.method: El método HTTP que se debe utilizar para la comprobación del estado.path: La ruta del punto final con el que se realizará la comprobación de estado.header: Los encabezados de solicitud de HTTP que hay que enviar en la comprobación de estado.follow_redirects: Seguir las redirecciones si las devuelve el origen.allow_insecure: No valide el certificado cuando utilice HTTPS en el monitor.probe_zone: Asigna este monitor para que emule la zona especificada durante la comprobación.
Datos JSON de ejemplo:
Para HTTP/HTTPS:
{ "description": "Health monitor of web service", "type": "https", "method": "GET", "path": "/health", "header": { "Host": [ "example.com" ], "X-App-ID": [ "abc123" ] }, "timeout": 5, "retries": 2, "interval": 90, "follow_redirects": true, "allow_insecure": false, "expected_codes": "2xx", "expected_body": "alive", "probe_zone": "example.com" }Para TCP:
{ "description": "Health monitor of TCP", "type": "tcp", "port": 80, "timeout": 5, "retries": 2, "interval": 90 } - Los campos obligatorios en los datos JSON son
-i, --instance-
Nombre o ID de instancia. Si no establece el nombre o ID de la instancia, el comando utiliza la instancia de contexto (
ibmcloud cis instance-set INSTANCE). --output-
El formato de salida. Actualmente,
jsones el único valor admitido.
Paso 2: Creación de un grupo de orígenes desde la CLI
Para crear un grupo de origen desde la CLI, ejecuta el siguiente comando :
ibmcloud cis glb-pool-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Donde:
--json- El archivo JSON o la cadena JSON que se utiliza para describir un grupo de origen. Obligatorio.
- Los campos obligatorios en los datos JSON son
name,originsy :check_regionsname: Un nombre corto (etiqueta) para el grupo.origins: Una lista de orígenes dentro de este conjunto.check_regions: Lista de códigos de regiones geográficas.
- Los campos opcionales son
description,minimum_origins,enabled,monitor.
- Los campos obligatorios en los datos JSON son
Datos JSON de ejemplo:
{
"name": "us-pool",
"description": "application server pool in US",
"origins": [
{
"name": "us-app-dal01",
"address": "1.1.1.1",
"enabled": true,
"header": {
"host": ["test.com"]
}
},
{
"name": "us-app-dal02",
"address": "2.2.2.2",
"enabled": true,
"header": {
"host": ["example.com"]
}
}
],
"minimum_origins": 1,
"check_regions": [ "WNAM" ],
"monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",
"enabled": true
}
-i, --instance- Nombre o ID de instancia. Si no establece el nombre o ID de la instancia, el comando utiliza la instancia de contexto (
ibmcloud cis instance-set INSTANCE). --output- El formato de salida. Actualmente,
jsones el único valor admitido.
Paso 3: Creación de un equilibrador de carga global desde la CLI
Para crear un equilibrador de carga global desde la CLI, ejecuta el siguiente comando :
cis glb-create DNS_DOMAIN_ID (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Donde:
DNS_DOMAIN_ID- El ID del dominio DNS. Obligatorio.
--json- El archivo JSON o la cadena JSON que se utiliza para describir un equilibrador de carga global. Obligatorio.
- Los campos obligatorios en los datos JSON son
name,fallback_pool, y :default_poolsname: El nombre de host DNS que se debe asociar a su equilibrador de carga.fallback_pool: El ID de pool a utilizar cuando CIS detecta que todos los demás pools no están sanos.default_pools: Una lista de identificadores de grupo ordenados según su prioridad de conmutación por error.
- Los campos opcionales son
description,ttl,region_pools,proxied,enabled,session_affinity,session_affinity_ttl,steering_policy:description: Una descripción de su equilibrador de carga.ttl: Tiempo de vida (TTL) de la entrada DNS correspondiente a la dirección IP que devuelve este equilibrador de carga.region_pools: Una correspondencia entre los códigos de región y de país y una lista de identificadores de grupo (ordenados según su prioridad de conmutación por error) para la región.proxied: Controla si el tráfico pasa por las funciones de seguridad y rendimiento de CIS.enabled: Si se debe habilitar (opción predeterminada) este equilibrador de carga.session_affinityayuda a garantizar que CIS dirija sistemáticamente las solicitudes de un usuario al mismo servidor backend durante una sesión. Los valores válidos soncookieynone.session_affinity_ttltiempo, en segundos, hasta que la cookie de afinidad de sesión de este equilibrador de carga caduca después de que CIS la cree. El valor válido está comprendido entre[1800, 604800]. El valor predeterminado es82800.steering_policy: Los valores válidos parasteering_policysonoff,geo,random,dynamic_latency.off: Utilizardefault_pools.geo: Utilizarregion_pools/pop_pools.random: Selecciona un grupo al azar.dynamic_latency: Utilice el tiempo de ida y vuelta para seleccionar el grupo más cercano en (default_poolsrequiere comprobaciones del estado del grupo).
- Los campos obligatorios en los datos JSON son
Datos JSON de ejemplo:
{
"name": "www.example.com",
"fallback_pool": "17b5962d775c646f3f9725cbc7a53df4",
"default_pools": [
"17b5962d775c646f3f9725cbc7a53df4",
"9290f38c5d07c2e2f4df57b1f61d4196"
],
"description": "Example global load balancer.",
"ttl": 60,
"region_pools": {
"WNAM": [
"de90f38ced07c2e2f4df50b1f61d4194",
"9290f38c5d07c2e2f4df57b1f61d4196"
],
"ENAM": [
"00920f38ce07c2e2f4df50b1f61d4194"
]
}
}
-i, --instance- Nombre o ID de instancia. Si no establece el nombre o ID de la instancia, el comando utiliza la instancia de contexto (
ibmcloud cis instance-set INSTANCE). --output- El formato de salida. Actualmente,
jsones el único valor admitido.
Para obtener más información sobre la creación, actualización y eliminación de balanceadores de carga globales, comprobaciones de estado y grupos de orígenes, consulte Comandos CLI del equilibrador de carga global.
Configuración de los equilibradores de carga globales con la API
Para crear y configurar un equilibrador de carga global con la API, siga estos pasos en este orden:
- Realizar una comprobación del estado. (opcional)
- Crear una agrupación de origen.
- Cree un equilibrador de carga global.
Paso 1: Creación de un chequeo con la API (opcional)
Las comprobaciones de estado son archivos adjuntos opcionales para agrupaciones de origen. Si no defines ninguna comprobación de estado personalizada, el sistema utiliza / como ruta de comprobación de estado predeterminada.
Siga estos pasos para crear un chequeo con la API:
- Configure el entorno de la API con las variables correctas.
- Almacena el siguiente valor en las variables que se utilizarán en el comando de la API:
CRN: el CRN codificado por url completo de la instancia de servicio.
-
Una vez inicializadas todas las variables, crea la comprobación de estado:
curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/monitors -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{ "description": "", "type": "http", "interval": 60, "retries": 2, "timeout": 5, "expected_body": "", "expected_codes": "200", "follow_redirects": true, "allow_insecure": false, "path": "/status", "header": { "Host": ["www.example.com"], "X-App-ID": ["abc123"] }, "method": "GET" }'
Paso 2: Creación de un grupo de orígenes con la API
Siga estos pasos para crear un grupo de orígenes con la API:
- Configure el entorno de la API con las variables correctas.
- Almacena el siguiente valor en las variables que se utilizarán en el comando de la API:
CRN: el CRN codificado por url completo de la instancia de servicio.
-
Una vez inicializadas todas las variables, crea el grupo de origen:
curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/pools -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{ "description": "", "enabled": true, "minimum_origins": 1, "monitor": "92859a0f6b4d3e55b953e0e29bb96338", "name": "eu-pool", "notification_email": "", "check_regions": [ "EEU" ], "origins": [ { "name": "eu-origin1", "address": "150.0.0.1", "enabled": true, "weight": 1 }, { "name": "eu-origin2", "address": "150.0.0.2", "enabled": true, "weight": 1 } ] }'
Paso 3: Creación de un equilibrador de carga global con la API
Siga estos pasos para crear un equilibrador de carga global con la API:
- Configure el entorno de la API con las variables correctas.
- Almacene los valores siguientes en variables que se utilizarán en el mandato de la API:
CRN: el CRN codificado por url completo de la instancia de servicio.
ZONE_ID: el ID de dominio.
-
Una vez iniciadas todas las variables, cree los equilibradores de carga globales:
curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/load_balancers -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{ "description": "", "proxied": true, "enabled": true, "name": "www.example.com", "session_affinity": "none", "session_affinity_ttl": 5000, "steering_policy": "geo", "fallback_pool": "4112ba6c2974ec43886f90736968e838", "default_pools": [ "6563ebae141638f92ebbdc4a821bef8c", "4112ba6c2974ec43886f90736968e838" ], "pop_pools": {}, "region_pools": { "EEU": [ "4112ba6c2974ec43886f90736968e838" ], "ENAM": [ "6563ebae141638f92ebbdc4a821bef8c" ], "WEU": [ "4112ba6c2974ec43886f90736968e838" ], "WNAM": [ "6563ebae141638f92ebbdc4a821bef8c" ] } }'
Para obtener más información sobre la creación, actualización y eliminación de balanceadores de carga globales, comprobaciones de estado y grupos de orígenes, consulte API Equilibrador de carga global.
Configuración de balanceadores de carga globales con Terraform
Antes de empezar, asegúrese de completar los pasos para configurar Terraform para CIS.
Para crear y configurar un balanceador de carga global con Terraform, siga estos pasos en orden:
- Creación de una comprobación de estado
- Crear un pool de origen
- Crear un equilibrador de carga global
Paso 1: Creación de una comprobación de estado con Terraform (opcional)
Las comprobaciones de estado son archivos adjuntos opcionales para agrupaciones de origen. Si no defines ninguna comprobación de estado personalizada, el sistema utiliza / como ruta de comprobación de estado predeterminada.
Para crear una comprobación de estado con Terraform, utilice el recurso ibm_cis_healthcheck:
resource "ibm_cis_healthcheck" "health_check" {
cis_id = ibm_cis.instance.id
description = "Health check for web servers"
expected_body = "alive"
expected_codes = "200"
method = "GET"
timeout = 5
path = "/health"
interval = 60
retries = 2
type = "http"
port = 80
allow_insecure = false
follow_redirects = true
}
Paso 2: Creación de un pool de origen con Terraform
Para crear un pool de orígenes con Terraform, utilice el recurso ibm_cis_origin_pool:
resource "ibm_cis_origin_pool" "origin_pool" {
cis_id = ibm_cis.instance.id
name = "us-pool"
origins {
name = "us-app-dal01"
address = "1.1.1.1"
enabled = true
}
origins {
name = "us-app-dal02"
address = "2.2.2.2"
enabled = true
}
description = "Application server pool in US"
enabled = true
minimum_origins = 1
monitor = ibm_cis_healthcheck.health_check.id
notification_email = ""
check_regions = [
"WNAM"
]
}
Paso 3: Creación de un equilibrador de carga global con Terraform
Para crear un equilibrador de carga global con Terraform, utilice el recurso ibm_cis_global_load_balancer:
resource "ibm_cis_global_load_balancer" "global_load_balancer" {
cis_id = ibm_cis.instance.id
domain_id = ibm_cis_domain.domain.id
name = "www.example.com"
fallback_pool_id = ibm_cis_origin_pool.origin_pool.id
default_pool_ids = [
ibm_cis_origin_pool.origin_pool.id
]
description = "Global load balancer for example.com"
proxied = true
enabled = true
session_affinity = "cookie"
steering_policy = "geo"
pop_pools {
pop = "LAX"
pool_ids = [
ibm_cis_origin_pool.origin_pool.id
]
}
region_pools {
region = "WNAM"
pool_ids = [
ibm_cis_origin_pool.origin_pool.id
]
}
}
Para obtener más información sobre los recursos de Terraform para balanceadores de carga globales, comprobaciones de estado y agrupaciones de origen, consulte los siguientes recursos en el registro de Terraform del proveedor IBM Cloud: