Creazione di bilanciatori di carico globali
Se avete un sito di e-commerce o ospitate un'applicazione che deve rimanere accessibile, probabilmente vi preoccupate della sua disponibilità e delle sue prestazioni.
Le funzionalità di load balancer globale disponibili con IBM Cloud Internet Services ( CIS ) contribuiscono a migliorare l'affidabilità e la scalabilità delle applicazioni, offrendo al contempo la migliore esperienza utente possibile.
Un bilanciatore di carico globale distribuisce il traffico degli utenti in più regioni geografiche per migliorare la disponibilità e le prestazioni.
È possibile configurare un bilanciatore di carico globale utilizzando la console, la CLI, le API o Terraform.
Prima di iniziare
- Esegue il provisioning di un'istanza di CIS.
- Configurate il vostro dominio in CIS.
- Identificare gli indirizzi IP o FQDN delle origini dell'applicazione.
CIS può supportare pool di bilanciatori di carico che utilizzano un indirizzo IP privato. Tuttavia, i pool di IP privati non supportano i servizi proxy o i controlli sanitari; è supportato solo il bilanciamento del carico basato su DNS. Per i pool con IP pubblici, i controlli sanitari possono essere configurati come descritto in (Passo 1: Creare un controllo sanitario ).
Configurazione rapida
Se si conoscono già i pool e i controlli di salute, è possibile crearli in linea quando si crea un bilanciatore di carico:
-
Nella console CIS, fare clic su Affidabilità > Bilanciatori di carico globali > Pool di origine, quindi fare clic su Crea.
-
Immetti un nome pool, le origini e seleziona un controllo di integrità.
È possibile creare un nuovo controllo sanitario selezionando Crea nuovo nel menu dell'elenco dei controlli sanitari e completando le informazioni.
-
Fare clic su Salva.
I passaggi seguenti forniscono la procedura completa per la creazione dei controlli di salute, dei pool e di un bilanciatore di carico globale.
Creare un bilanciatore di carico globale nella console
Quando si apre la pagina Bilanciatori di carico globali (Affidabilità > Bilanciatori di carico globali ), la pagina mostra le schede Bilanciatori di caricoSoftware o hardware che distribuisce il carico di lavoro tra un insieme di server per garantire che i server non vengano sovraccaricati., Pool di origine, Controlli di saluteUn processo che monitora le risorse e le condizioni del sistema per determinare se il sistema è in esecuzione in modo efficiente. ed Eventi. Queste schede visualizzano i bilanciatori di carico globali e i loro componenti man mano che vengono creati o aggiornati.
Nella seguente procedura, passo dopo passo, si apprende come configurare un'impostazione simile al diagramma seguente. In questo esempio, le risorse dell'applicazione sono distribuite in due data center (US West e US East), con utenti che accedono all'applicazione a livello globale. Gli utenti potrebbero accedere a questa applicazione da ogni parte del mondo.
Per creare e configurare un bilanciatore di carico globale nella console, procedere come segue:
Fase 1: Creare un controllo dello stato di salute (facoltativo)
I controlli di integrità sono allegati facoltativi dei pool di origini. Vengono eseguiti a un intervallo configurabile per controllare un corpo di risposta o un codice di stato specifico e monitorare lo stato del pool. Dopo aver creato un controllo di salute, è possibile aggiungelo ad una nuova o esistente pool di origine.
Se non si definiscono controlli sanitari personalizzati, CIS utilizza / come percorso predefinito dei controlli sanitari.
-
Nella console CIS, fare clic su Affidabilità > Bilanciatori di carico globali > Controlli di salute, quindi fare clic su Crea.
-
Configurare i seguenti campi:
- Nome: Nome del controllo sanitario.
- Tipo di monitor: il protocollo da utilizzare per il controllo dello stato di funzionamento. (Impostazione predefinita:
HTTP). - Porta: Fare clic sulle frecce per aumentare o diminuire il numero della porta.
- Percorso: il percorso dell'endpoint su cui eseguire il controllo di integrità. (Impostazione predefinita:
/)
-
Espandere Opzioni avanzate per configurare:
- Intervallo di test: l'intervallo (in secondi) tra un controllo di integrità e l'altro. Intervalli più brevi possono ridurre i tempi di failover, ma aumentano il carico sui server di origine, poiché le verifiche provengono
da più postazioni. (Impostazione predefinita:
60). - Metodo: il metodo
HTTPda utilizzare per il controllo dello stato di salute. (Impostazione predefinita:GET) - Timeout (secondi): Il tempo prima di contrassegnare il controllo sanitario come fallito. (Impostazione predefinita:
5) - Numero di tentativi: il numero di tentativi da effettuare in caso di timeout prima di contrassegnare l'origine come non funzionante. CIS tenta immediatamente di riprovare. (Impostazione predefinita:
2) - Codici di risposta previsti: il codice di risposta previsto HTTP o l'intervallo di codici relativi al controllo di integrità. Questo valore deve essere compreso tra 200 e 299, con caratteri jolly indicati da
x. - Corpo della risposta: una sottostringa (senza distinzione tra maiuscole e minuscole) da cercare nel corpo della risposta. Se CIS non trova questa stringa, contrassegna l'origine come non sana.
- Soglia di salute: Il numero di risposte consecutive di controllo dello stato di salute che CIS deve ricevere prima di contrassegnare un'origine come sana. Questa impostazione impedisce a CIS di contrassegnare un'origine
sana dopo una singola sonda riuscita e aiuta a evitare lo sbattimento durante il recupero intermittente. (Impostazione predefinita:
1) - Soglia non sana: Il numero di risposte consecutive fallite al controllo di salute che devono verificarsi prima che CIS segnali un'origine come non sana. Questa impostazione consente di evitare che problemi temporanei
di rete o di applicazione inneschino immediatamente il failover. (Impostazione predefinita:
1) - Segui redirect: Determina se il controllo sanitario segue automaticamente le risposte di reindirizzamento HTTP 3xx. Quando è abilitato, il controllo dello stato di salute prosegue verso la posizione reindirizzata e valuta la risposta finale in base ai criteri di successo configurati (codice di stato e corpo della risposta opzionale). Quando è disattivato, le risposte di reindirizzamento vengono valutate direttamente rispetto ai codici di risposta previsti.
- Intervallo di test: l'intervallo (in secondi) tra un controllo di integrità e l'altro. Intervalli più brevi possono ridurre i tempi di failover, ma aumentano il carico sui server di origine, poiché le verifiche provengono
da più postazioni. (Impostazione predefinita:
-
Espandere Configura intestazioni di richiesta (opzionale) per aggiungere e configurare le intestazioni di richiesta HTTP da inviare nel controllo dello stato di salute.
Imposta un'intestazione Host come impostazione predefinita. L'intestazione "
User-Agent" non può essere sovrascritta. -
Fai clic su " Crea " per completare la configurazione del controllo dello stato di salute.
Lavorare con gli eventi di controllo della salute
La scheda Eventi consente di monitorare e analizzare le modifiche allo stato di salute delle origini e dei pool associati a un bilanciatore di carico globale. Gli eventi di controllo sanitario rappresentano le modifiche di stato rilevate dai controlli sanitari configurati. Quando lo stato di un'origine cambia, viene visualizzata una voce di evento corrispondente con i dettagli.
Sono disponibili le seguenti opzioni di filtraggio:
- Data di inizio: Filtra gli eventi in base all'inizio di un intervallo di date selezionato.
- Data finale: Filtra gli eventi in base alla fine di un intervallo di date selezionato.
- Salute dell'origine: Filtra gli eventi in base allo stato dell'origine (ad esempio, Sano o Critico).
- Origini: Filtra gli eventi in base a un'origine specifica.
- Stato del pool: Filtra gli eventi in base allo stato del pool (ad esempio, Sano o Critico).
- Pool: Filtra gli eventi in base a uno specifico pool di origine.
Per visualizzare gli eventi di controllo dello stato di salute, fare clic su Affidabilità > Bilanciatori di carico globali > Eventi.
Passo 2: creare un pool di origine
È necessario almeno un pool per ogni programma di bilanciamento del carico fornito. Raggruppa le origini che il bilanciatore di carico deve utilizzare.
-
Nella console CIS, fare clic su Affidabilità > Bilanciatori di carico globali > Pool di origine, quindi fare clic su Crea.
-
Selezionare se abilitare questo pool. Le piscine per disabili non ricevono traffico e CIS le esclude dai controlli sanitari. Quando si disattiva un pool, i bilanciatori di carico che lo utilizzano passano al pool successivo, se presente.
-
Configurare i campi obbligatori:
- Nome: un nome breve (tag) del pool. Sono consentiti solo caratteri alfanumerici, trattini e caratteri di sottolineatura.
- Origini: l'elenco delle origini in questo pool. CIS distribuisce il traffico destinato a questo pool tra tutte le origini attualmente operative, a condizione che il pool stesso sia operativo.
Se i server delle applicazioni si trovano dietro un bilanciatore di carico locale, come ad esempio un bilanciatore di carico IBM Cloud, aggiungi come origine il nome di dominio completo (FQDN) o l'IP virtuale del bilanciatore di carico, anziché aggiungere i singoli server.
-
Configurare i campi opzionali come necessario:
- Soglia origine integra: il numero minimo di origini che devono essere integre per questo pool per assicurare il traffico. Se il numero di origini funzionanti scende al di sotto di tale valore, CIS contrassegna il pool
come non funzionante e passa al pool disponibile successivo. (Impostazione predefinita:
1) - Regione del controllo dello stato di salute del pool: Regione da cui il controllo dello stato di salute esegue il monitoraggio.
- Controllo di integrità: il controllo di integrità da utilizzare per la verifica delle origini all'interno di questo pool. (Impostazione predefinita: nessun controllo dello stato di salute )
- Soglia origine integra: il numero minimo di origini che devono essere integre per questo pool per assicurare il traffico. Se il numero di origini funzionanti scende al di sotto di tale valore, CIS contrassegna il pool
come non funzionante e passa al pool disponibile successivo. (Impostazione predefinita:
-
Fare clic su Salva per completare la configurazione del pool di origine.
Il pool di origine appare inizialmente come Unsano. Questo stato passa a Sano dopo un controllo di salute riuscito da parte di CIS. Potrebbe essere necessario aggiornare il browser per vedere la modifica dello stato.
Definire un numero di pool di origine pari al numero di farm di applicazioni disponibili. Queste aziende agricole potrebbero trovarsi nella stessa regione geografica o in regioni diverse.
Passo 3: Configurazione del bilanciatore di carico globale
I bilanciatori di carico aiutano a distribuire il traffico su più pool di origine.
-
Nella console CIS, fare clic su Affidabilità > Bilanciatori di carico globali > Bilanciatori di carico, quindi fare clic su Crea.
-
Abilitare il bilanciatore di carico.
-
Per Proxy, verificare se il traffico passa attraverso le funzioni di sicurezza e prestazioni su CIS. 'Disattivo' ignora tali sistemi.
-
Configurare le seguenti informazioni:
-
Nome (opzionale): Il nome da associare al bilanciatore di carico.
-
TTL: Time-to-live (TTL) della voce DNS relativa all'indirizzo IP restituito da questo bilanciatore di carico. Questa opzione si applica solo ai bilanciatori di carico senza proxy; in caso contrario, il valore predefinito è
Automatic. -
Direzione del traffico: Controlla il modo in cui le richieste degli utenti in arrivo vengono distribuite tra i pool di origine configurati, determinando l'algoritmo utilizzato da CIS per decidere quale centro dati (pool) serve ciascuna richiesta. Per ulteriori informazioni, vedere Ottimizzazione della gestione del traffico.
-
Affinità della sessione: instrada sempre tramite la stessa istanza delle metriche e delle prestazioni. Questa opzione è disponibile solo se la funzione Proxy è abilitata.
-
Percorsi geografici: una mappatura dei codici di regione o di paese a un elenco di pool (ordinati in base alla loro priorità di failover) per la regione specificata. Per tutte le regioni non definite esplicitamente, si ricorre ai pool predefiniti.
IBM le regioni geografiche di CIS differiscono da quelle utilizzate da. Per informazioni dettagliate sulle regioni geografiche, vedere Geo steering.
-
-
Fare clic su Crea per completare la configurazione del bilanciatore di carico globale.
Fase 4: verifica della connettività
Infine, verificare la connettività all'applicazione accedendo all'FQDN URL in un browser.
Per ulteriori informazioni sull'aggiornamento e l'eliminazione di bilanciatori di carico globali, controlli di salute e pool di origine nella console, vedere Gestione dei bilanciatori di carico globali.
Configurazione dei bilanciatori di carico globali dalla CLI
Per creare e configurare un bilanciatore di carico globale dalla CLI, seguire i seguenti passaggi nell'ordine:
- Crea un controllo dello stato di salute. (facoltativo)
- Crea un pool di origine.
- Crea un programma di bilanciamento del carico globale.
Passo 1: creazione di un controllo dello stato di salute dalla CLI (opzionale)
I controlli di integrità sono allegati facoltativi dei pool di origini. Se non si definiscono controlli di integrità personalizzati, il sistema utilizza / come percorso predefinito per i controlli di integrità.
Per creare un controllo dello stato di salute dalla CLI, eseguire il seguente comando:
ibmcloud cis glb-monitor-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Dove:
--json-
Il file JSON o la stringa JSON utilizzata per descrivere un controllo sanitario. Obbligatorio.
- I campi obbligatori nei dati JSON sono
type.type: Il protocollo da utilizzare per il controllo dello stato di salute. I valori validi sonoHTTP,HTTPSeTCP.
- I campi facoltativi sono
description,timeout,retries,interval.descriptiondescrizione del controllo sanitario.timeout: Il tempo di attesa (in secondi) prima che il controllo di integrità venga contrassegnato come fallito.retriesil numero di tentativi da effettuare in caso di timeout prima che l'origine sia contrassegnata come non sana.interval: L'intervallo tra un controllo di stato e l'altro.
- Per
TCPil tipo di controllo di integrità. I campi obbligatori supplementari sonoport.port: La porta dell' TCP e da utilizzare per il controllo di integrità.
- Per
HTTP/HTTPSil tipo di controllo di integrità. I campi facoltativi supplementari sonoport,expected_body,expected_codes,method,path,header,follow_redirects,allow_insecure.port: La porta dell' TCP e da utilizzare per il controllo di integrità.expected_body: Una sottostringa (senza distinzione tra maiuscole e minuscole) da cercare nel corpo della risposta.expected_codes: Il codice di risposta previsto HTTP o l'intervallo di codici per il controllo di integrità.method: Il metodoHTTPda utilizzare per il controllo dello stato.path: Il percorso dell'endpoint su cui eseguire il controllo di integrità.header: Le intestazioni della richiesta da inviare nell' HTTP e per il controllo di integrità.follow_redirects: Seguire i reindirizzamenti se restituiti dal sito di origine.allow_insecure: Non convalidare il certificato quando il monitor utilizza HTTPS.probe_zone: Assegnare questo monitor per emulare la zona specificata durante la verifica.
Dati JSON di esempio:
Per 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" }Per TCP:
{ "description": "Health monitor of TCP", "type": "tcp", "port": 80, "timeout": 5, "retries": 2, "interval": 90 } - I campi obbligatori nei dati JSON sono
-i, --instance-
Il nome o l'ID dell'istanza. Se non si imposta il nome o l'ID dell'istanza, il comando utilizza l'istanza del contesto (
ibmcloud cis instance-set INSTANCE). --output-
Il formato di uscita. Attualmente, "
json" è l'unico valore supportato.
Passo 2: Creazione di un pool di origini dalla CLI
Per creare un pool di origine dalla CLI, eseguire il seguente comando:
ibmcloud cis glb-pool-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Dove:
--json- Il file JSON o la stringa JSON utilizzati per descrivere un pool di origini. Obbligatorio.
- I campi obbligatori nei dati JSON sono
name,originsecheck_regions:name: Un nome breve (tag) per il pool.origins: Un elenco delle origini presenti in questo gruppo.check_regions: Un elenco dei codici delle regioni geografiche.
- I campi facoltativi sono
description,minimum_origins,enabled,monitor.
- I campi obbligatori nei dati JSON sono
Dati JSON di esempio:
{
"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- Il nome o l'ID dell'istanza. Se non si imposta il nome o l'ID dell'istanza, il comando utilizza l'istanza del contesto (
ibmcloud cis instance-set INSTANCE). --output- Il formato di uscita. Attualmente, "
json" è l'unico valore supportato.
Passo 3: creazione di un bilanciatore di carico globale dalla CLI
Per creare un bilanciatore di carico globale dalla CLI, eseguire il seguente comando:
cis glb-create DNS_DOMAIN_ID (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Dove:
DNS_DOMAIN_ID- L'ID del dominio DNS. Obbligatorio.
--json- Il file JSON o la stringa JSON utilizzati per descrivere un bilanciatore di carico globale. Obbligatorio.
- I campi obbligatori nei dati JSON sono
name,fallback_pooledefault_pools:name: Il nome host DNS da associare al bilanciatore di carico.fallback_pooll'ID del pool da utilizzare quando CIS rileva che tutti gli altri pool non sono sani.default_pools: Un elenco di ID delle pool ordinati in base alla loro priorità di failover.
- I campi facoltativi sono
description,ttl,region_pools,proxied,enabled,session_affinity,session_affinity_ttl,steering_policy:description: Una descrizione del tuo bilanciatore di carico.ttl: Tempo di validità (TTL) della voce DNS relativa all'indirizzo IP restituito da questo bilanciatore di carico.region_pools: Una mappatura dei codici di regione e di paese a un elenco di ID di pool (ordinati in base alla loro priorità di failover) per la regione.proxied: Consente di determinare se il traffico debba passare attraverso le funzioni di sicurezza e prestazioni su CIS.enabled: Se abilitare (impostazione predefinita) questo bilanciatore di carico.session_affinityaiuta a garantire che CIS indirizzi in modo coerente le richieste di un utente allo stesso server di backend durante una sessione. I valori validi sonocookieenone.session_affinity_ttl: Tempo, in secondi, fino alla scadenza del cookie di affinità di sessione di questo bilanciatore di carico dopo la creazione da parte di CIS. Il valore valido è compreso tra[1800, 604800]. Il valore predefinito è82800.steering_policy: I valori validi per "steering_policy" sonooff,geo,random,dynamic_latency.off: Utilizzadefault_pools.geo: Utilizzaregion_pools/pop_pools.random: Scegli un pool a caso.dynamic_latency: Utilizza il tempo di andata e ritorno per selezionare il pool più vicino indefault_pools(richiede controlli di integrità del pool).
- I campi obbligatori nei dati JSON sono
Dati JSON di esempio:
{
"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- Il nome o l'ID dell'istanza. Se non si imposta il nome o l'ID dell'istanza, il comando utilizza l'istanza del contesto (
ibmcloud cis instance-set INSTANCE). --output- Il formato di uscita. Attualmente, "
json" è l'unico valore supportato.
Per ulteriori informazioni sulla creazione, l'aggiornamento e l'eliminazione di bilanciatori di carico globali, controlli di salute e pool di origine, vedere Comandi CLI del bilanciatore di carico globale.
Configurazione dei bilanciatori di carico globali con l'API
Per creare e configurare un bilanciatore di carico globale con l'API, seguire i seguenti passaggi nell'ordine:
- Crea un controllo dello stato di salute. (facoltativo)
- Crea un pool di origine.
- Crea un programma di bilanciamento del carico globale.
Passo 1: creazione di un controllo dello stato di salute con l'API (facoltativo)
I controlli di integrità sono allegati facoltativi dei pool di origini. Se non si definiscono controlli di integrità personalizzati, il sistema utilizza / come percorso predefinito per i controlli di integrità.
Seguire questi passaggi per creare un controllo dello stato di salute con l'API:
- Impostare l'ambiente API con le variabili corrette.
- Memorizzare il seguente valore nelle variabili da utilizzare nel comando API:
CRN: Il CRN completo codificato da URL dell'istanza di servizio.
-
Quando tutte le variabili sono state inizializzate, creare il controllo dello stato di salute:
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" }'
Passo 2: Creare un pool di origini con l'API
Seguire questi passaggi per creare un pool di origini con l'API:
- Impostare l'ambiente API con le variabili corrette.
- Memorizzare il seguente valore nelle variabili da utilizzare nel comando API:
CRN: Il CRN completo codificato da URL dell'istanza di servizio.
-
Quando tutte le variabili sono inizializzate, creare il pool di origine:
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 } ] }'
Passo 3: Creare un bilanciatore di carico globale con l'API
Seguite questi passaggi per creare un bilanciatore di carico globale con l'API:
- Impostare l'ambiente API con le variabili corrette.
- Memorizzare i seguenti valori in variabili da utilizzare nel comando API:
CRN: Il CRN completo codificato da URL dell'istanza di servizio.
ZONE_ID: L'ID del dominio.
-
Quando tutte le variabili sono state inizializzate, creare i bilanciatori di carico globali:
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" ] } }'
Per ulteriori informazioni sulla creazione, l'aggiornamento e l'eliminazione di bilanciatori di carico globali, controlli di salute e pool di origine, vedere API Bilanciatore di carico globale.
Configurazione di bilanciatori di carico globali con Terraform
Prima di iniziare, assicurarsi di aver completato i passaggi per configurare Terraform per CIS.
Per creare e configurare un bilanciatore di carico globale con Terraform, seguire i seguenti passaggi in ordine:
- Crea un controllo dell'integrità
- Creare un pool di origine
- Crea un GLB (global load balancer)
Passo 1: Creare un controllo dello stato di salute con Terraform (opzionale)
I controlli di integrità sono allegati facoltativi dei pool di origini. Se non si definiscono controlli di integrità personalizzati, il sistema utilizza / come percorso predefinito per i controlli di integrità.
Per creare un controllo dello stato di salute con Terraform, utilizzare la risorsa 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
}
Passo 2: Creare un pool di origini con Terraform
Per creare un pool di origine con Terraform, utilizzare la risorsa 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"
]
}
Passo 3: Creare un bilanciatore di carico globale con Terraform
Per creare un bilanciatore di carico globale con Terraform, utilizzare la risorsa 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
]
}
}
Per ulteriori informazioni sulle risorse Terraform per i bilanciatori di carico globali, i controlli di salute e i pool di origine, vedere le seguenti risorse nel registro Terraform di IBM Cloud Provider: