Creazione di un programma di bilanciamento del carico dell'applicazione
È possibile creare un IBM Cloud® Application Load Balancer for VPC (ALB) per distribuire il traffico in entrata su più istanze. È possibile utilizzare l'ALB con istanze di server virtuali, istanze di server bare metal e altri dispositivi che hanno indirizzi IP accessibili al bilanciatore di carico, come le istanze Power Systems™ Virtual Server collegate tramite IBM Cloud Direct Link.
Creare un bilanciatore di carico delle applicazioni nella console
Per creare un ALB:
-
Dal browser, apri la console IBM Cloud ed effettua l'accesso al tuo account.
-
Selezionare l'
del menu di navigazione, quindi fare clic sull'icona Infrastruttura
> Rete > Bilanciatori di carico.
-
Nella pagina "Bilanciatori di carico per VPC", fare clic su Crea.
-
Per il tipo di bilanciatore di carico, selezionare il riquadro " Application Load Balancer (ALB) ".
-
Nella sezione "Posizione", modificare il seguente campo, se necessario.
- Area: indica la regione in cui vuoi che venga creato il programma di bilanciamento del carico.
-
Nella sezione "Dettagli", inserisci le seguenti informazioni:
-
Name: immetti un nome per il programma di bilanciamento del carico, ad esempio
my-load-balancer. -
Resource group: seleziona un gruppo di risorse per il programma di bilanciamento del carico.
-
Tag: (Facoltativo) Aggiungi dei tag per organizzare e trovare più facilmente le tue risorse. Puoi aggiungere più tag in seguito. Per ulteriori informazioni, vedi Gestione delle tag.
-
Tag di gestione degli accessi: (facoltativo) aggiungere tag di gestione degli accessi alle risorse per organizzare le relazioni di controllo accessi. L'unico formato supportato per le tag di gestione accessi è
key:value. Per ulteriori informazioni, vedi Controllo dell'accesso alle risorse utilizzando le tag. -
Virtual private cloud: seleziona il tuo VPC.
-
Subnets: seleziona le sottoreti in cui creare il tuo programma di bilanciamento del carico. Per massimizzare la disponibilità della tua applicazione, seleziona sottoreti in zone diverse.
Non puoi assegnare più di 15 sottoreti per ALB.
-
Type: seleziona il tipo di programma di bilanciamento del carico.
- Un bilanciatore di carico pubblico dispone di un indirizzo IP pubblico, il che significa che è in grado di instradare le richieste dei client tramite Internet.
- Un bilanciatore di carico privato dispone di un indirizzo IP privato, il che significa che è accessibile solo ai client interni situati nella stessa regione e nella stessa VPC.
-
Tipo di DNS: selezionare " Pubblico " o " Privato". Le zone DNS private sono risolvibili solo su IBM Cloud e solo da reti esplicitamente autorizzate all'interno di un account o con accesso tra account.
Solo per il tipo Privato, fare clic su Bind per inserire le informazioni sull'istanza e sulla zona DNS, quindi fare clic su Bind.
-
-
Nella sezione Pool back-end, fare clic su Crea e specificare le seguenti informazioni per creare un pool back-end. Puoi creare uno o più pool.
- Name: immetti un nome per il pool, ad esempio
my-pool. - Protocollo del pool: selezionare il protocollo per le istanze presenti in questo pool. Il protocollo del pool deve essere compatibile con il protocollo dell'ascoltatore. Per gli ascoltatori di HTTP o HTTPS, utilizzare HTTP come protocollo del pool. Per gli ascoltatori di TCP, utilizzare TCP come protocollo del pool.
- Session stickiness: seleziona se tutte le richieste durante la sessione di un utente vengono inviate alla stessa istanza.
- Protocollo proxy: selezionare "Disabilitato" (impostazione predefinita), "Versione 1 " o "Versione 2 " (versioni dell'intestazione del protocollo proxy). Il protocollo proxy aggiunge un'intestazione di protocollo proxy ai pacchetti TCP, HTTP e HTTPS inviati al pool di back-end. Questa impostazione consente ai server back-end di ottenere le informazioni relative all'IP e alla porta del client che il bilanciatore di carico imposta nell'intestazione del protocollo proxy.
- Method: seleziona come vuoi che il programma di bilanciamento del carico distribuisca il traffico tra le istanze nel pool:
- Least connections: inoltra le richieste all'istanza con il minor numero di connessioni al momento attuale.
- Round robin: inoltra a turno le richieste a ciascuna istanza. Tutte le istanze ricevono approssimativamente un numero uguale di connessioni client.
- Weighted round robin: inoltra le richieste a ciascuna istanza in proporzione al peso assegnato. Ad esempio, si hanno le istanze A, B e C, i cui pesi sono impostati rispettivamente su
60,60e30. Le istanze A e B ricevono un numero uguale di connessioni e l'istanza C riceve metà del numero di connessioni.
- Controllo dello stato: configurare le modalità con cui il bilanciatore di carico verifica lo stato delle istanze.
- Percorso del controllo di integrità: il percorso del controllo di integrità è applicabile solo se come protocollo di controllo di integrità è selezionato “ HTTP ”. Il percorso del controllo di integrità specifica l'
URL utilizzato dal bilanciatore di carico per inviare le richieste di controllo di integrità HTTP alle istanze presenti nel pool. Per impostazione predefinita, i controlli di integrità vengono inviati al percorso root (
/). - Health protocol: il protocollo utilizzato dal programma di bilanciamento del carico per inviare i messaggi di controllo di integrità alle istanze nel pool.
- Porta di integrità (opzionale): la porta su cui inviare le richieste di controllo dello stato di integrità. Per impostazione predefinita, i controlli di integrità vengono inviati sulla stessa porta su cui viene inviato il traffico all'istanza.
- Intervallo (sec): intervallo in secondi tra due tentativi consecutivi di controllo dello stato di salute. Per impostazione predefinita, i controlli di integrità vengono inviati ogni 5 secondi.
- Timeout (sec): tempo massimo che il sistema attende per ricevere una risposta a una richiesta di controllo dello stato. Per impostazione predefinita, il programma di bilanciamento del carico attende 2 secondi per una risposta.
- Max retries: numero massimo di tentativi di controllo di integrità eseguiti dal programma di bilanciamento del carico prima che un'istanza venga considerata non integra. Per impostazione predefinita, un'istanza non è più considerata integra dopo due controlli di integrità non riusciti.
- Percorso del controllo di integrità: il percorso del controllo di integrità è applicabile solo se come protocollo di controllo di integrità è selezionato “ HTTP ”. Il percorso del controllo di integrità specifica l'
URL utilizzato dal bilanciatore di carico per inviare le richieste di controllo di integrità HTTP alle istanze presenti nel pool. Per impostazione predefinita, i controlli di integrità vengono inviati al percorso root (
- Name: immetti un nome per il pool, ad esempio
-
(Facoltativo) Selezionare " Impostazioni richiesta " per personalizzare i valori della richiesta di controllo dello stato. Se non vengono specificati valori, vengono utilizzate le impostazioni predefinite.
- Metodo di richiesta: scegliere uno tra
GEToPOST. È possibile personalizzare le intestazioni delle richieste per entrambi i metodi. È possibile, se lo si desidera, personalizzare il corpo della richiesta quando si utilizza il metodoPOST. - Corpo della richiesta: includere il corpo della richiesta HTTP da utilizzare per i controlli di integrità. Se non diversamente specificato, le richieste di controllo dello stato non avranno un corpo della richiesta.
- Intestazione host: includere l'intestazione host per garantire che la richiesta utilizzi il protocollo HTTP/1.1. In caso contrario, il sistema imposta come valore predefinito HTTP/1.0.
- Aggiungi altre intestazioni di richiesta: aggiungi una o più intestazioni di richiesta aggiuntive.
- Nome dell'intestazione: per il metodo di richiesta "
GET", scegliere una delle seguenti opzioni:content-type,accept,authorization,cookie,origin,referrerouser-agent. Per il metodo di richiesta "POST", scegliere una delle seguenti opzioni:content-type,content-length,application-jsonoaccept-encoding. - Valore: inserire il valore corrispondente al nome dell'intestazione specificato.
Per i bilanciatori di carico di rete Private Path (PPNLB), è presente un problema noto per cui i campi relativi alla richiesta e alla risposta del monitoraggio dello stato non vengono restituiti nella risposta dell'API GET.
- Metodo di richiesta: scegliere uno tra
-
(Facoltativo) Selezionare " Impostazioni di risposta " per personalizzare i valori di risposta del controllo di integrità. Se non vengono specificati valori, vengono utilizzate le impostazioni predefinite.
-
Corpo della risposta: inserisci il testo del corpo della risposta.
-
Codice di risposta: È possibile specificare più valori separati da virgole compresi nell'intervallo 100-599. Per specificare un intervallo, utilizzare XX. Ad esempio, 2XX per i modelli da 200 a 299.
HTTP invia i dati in formato testo semplice, che può essere intercettato ed è considerato non sicuro. Si consiglia di utilizzare il protocollo
httpsanzichéhttp. Per ulteriori dettagli, consulta la sezione " Perché HTTP non è sicuro? ".Sebbene il programma di bilanciamento del carico interrompa l'invio di connessioni a istanze non integre, il programma di bilanciamento del carico continua a monitorare l'integrità di queste istanze e ne ripristina l'utilizzo se vengono rilevate nuovamente integre (ovvero, se superano correttamente due tentativi consecutivi di controllo di integrità).
Se le istanze nel pool non sono integre e ritieni che la tua applicazione funzioni correttamente, ricontrolla i valori del protocollo di integrità e del percorso di integrità. Inoltre, controlla tutti i gruppi di sicurezza collegati alle istanze per assicurati che le regole consentano il traffico tra il programma di bilanciamento del carico e le istanze.
-
-
Fai clic su Crea per creare il pool di backend.
È possibile collegare le istanze del server dopo aver creato un pool di back-end.
-
Per aggiungere un'istanza del server al nuovo lotto, fare clic su Collega server nella colonna Istanze server della tabella.
-
Per aggiungere i dispositivi VPC al pool, come le istanze del server virtuale e i server bare metal, seleziona la scheda Dispositivi VPC. Specifica le seguenti informazioni per ogni istanza:
-
Seleziona una o più sottoreti da cui selezionare un'istanza.
-
Seleziona un'istanza. Se un'istanza ha più interfacce, assicurati di selezionare l'indirizzo IP corretto.
-
Specifica la porta su cui viene inviato il traffico all'istanza.
-
Se il tuo pool utilizza il metodo Weighted round robin, assegna un peso per ogni istanza.
Assegnare un peso “
0” a un’istanza significa che nessuna nuova connessione verrà inoltrata a tale istanza, ma il traffico esistente continuerà a transitare finché la connessione corrente rimarrà attiva. L'utilizzo di un peso pari a0può aiutare a chiudere in modo ordinato un'istanza e a rimuoverla dalla rotazione dei servizi. -
Fai clic su Configure port and weight, quindi specifica la porta su cui viene inviato il traffico all'istanza.
-
-
Per collegare altre istanze del server al tuo pool di back - end, ad esempio i server contenuti in un IBM Power Systems Virtual Server, seleziona la scheda Altro e fai clic su Aggiungi altro. Specifica le seguenti informazioni per ogni istanza:
-
Specificare un indirizzo IP privato per la periferica.
-
Specifica la porta su cui viene inviato il traffico all'istanza.
-
Se il tuo pool utilizza il metodo Weighted round robin, assegna un peso per ogni istanza.
Assegnare un peso “
0” a un’istanza significa che nessuna nuova connessione verrà inoltrata a tale istanza, ma il traffico esistente continuerà a transitare finché la connessione corrente rimarrà attiva. L'utilizzo di un peso pari a0può aiutare a chiudere in modo ordinato un'istanza e a rimuoverla dalla rotazione dei servizi.
-
-
Fai clic su Collega per collegare l'istanza del server al pool di backend.
-
-
Nella sezione Listener front-end, fare clic su Crea listener e specificare le seguenti informazioni per creare un listener. Puoi creare uno o più listener.
- Protocol: il protocollo da utilizzare per ricevere le richieste in ingresso.
- Protocollo proxy: selezionare se consentire al listener di front-end di accettare il traffico del protocollo proxy.
- Port: la porta di attesa su cui vengono ricevute le richieste.
- Back-end pool: il pool di backend predefinito a cui questo listener inoltra il traffico.
- Max connections (facoltativo): numero massimo di connessioni simultanee consentite dal listener.
- Autorizzazione IAM: se HTTPS è il protocollo selezionato per questo listener, è necessario indicare l'autorizzazione IAM, tramite istanza o CRN.
- Secrets Manager: se HTTPS è il protocollo selezionato per questo listener, è necessario selezionare o creare un gestore di segreti.
- SSL certificate: se HTTPS è il protocollo selezionato per questo listener, devi selezionare un certificato SSL. Assicurati che il programma di bilanciamento del carico sia autorizzato ad accedere al certificato SSL.
- Timeout (sec) (facoltativo): il timeout massimo dopo il quale il programma di bilanciamento del carico chiude la connessione se non sono stati inviati o ricevuti dati entro il periodo di timeout di inattività. I valori di timeout minimo e massimo sono 50 secondi e 2 ore. Questi valori si riferiscono sia al client che al server. Per aumentare il limite di timeout a più di 2 ore, creare un caso di assistenza che fornisca i requisiti aziendali per il valore di timeout richiesto.
-
Fare clic su Crea per creare il listener front - end.
-
Nella sezione Gruppi di sicurezza, seleziona i gruppi di protezione che vuoi collegare al tuo programma di bilanciamento del carico o fai clic su Crea per creare un nuovo gruppo di protezione da collegare all'ALB.
Accertarsi che il gruppo di sicurezza consenta il bilanciamento del carico del traffico (porte di controllo di integrità, backend e listener). Se non specifichi un gruppo di sicurezza, il gruppo di sicurezza predefinito dal tuo VPC si collega invece.
-
Dopo aver completato la creazione di pool e listener, fai clic su Create load balancer.
-
Per visualizzare i dettagli di un programma di bilanciamento del carico esistente, fai clic sul nome del programma di bilanciamento del carico nella pagina Load balancers.
-
Opzionalmente, è possibile creare un backup per qualsiasi pool esistente. Ciò consente al pool di backup di gestire il traffico in caso di guasto di un membro. A tal fine, è necessario creare un criterio failsafe:
-
Solo i bilanciatori di carico delle applicazioni consentono di associare più di un pool a un singolo ascoltatore.
-
Assicurarsi che ci sia almeno un pool già esistente nel bilanciatore di carico.
Un ascoltatore è la risorsa madre in un bilanciatore di carico. È possibile associare i pool a un ascoltatore direttamente (impostandolo come
default_pool) o indirettamente (facendogli riferimento attraverso un altro poolfailsafe_policy.target). Il pool a cui si fa riferimento indirettamente deve essere già collegato all'ascoltatore. -
Dopo che lo stato del bilanciatore del carico è diventato Attivo, selezionare la scheda Pool back-end.
-
Nella pagina dell'elenco delle piscine, fare clic su Modifica, quindi specificare le seguenti informazioni:
- Azione: Selezionare avanti per configurare il criterio failsafe. Questo inoltra il traffico a un pool di backup quando i membri si guastano e rende attiva la sezione Target.
- Destinazione: Selezionare un pool dall'elenco dei pool compatibili come pool di backup.
-
-
Se si desidera reindirizzare il traffico da un listener HTTP a un listener HTTPS, è possibile creare un listener HTTP con impostazioni di reindirizzamento HTTPS.
Le politiche di bilanciamento del carico di livello 7 sovrascrivono le impostazioni definite qui. Inoltre, tieni presente che deve già esistere un listener HTTPS prima di creare un nuovo listener HTTP con reindirizzamento HTTPS.
Per farlo:
- Una volta modificato lo stato del programma di bilanciamento del carico in Attivo, fare clic sulla scheda Listener di front-end.
- Nella pagina elenco listener, fare clic su Crea, quindi specificare le seguenti informazioni:
- Protocollo: Selezionare HTTP come protocollo.
- Porta: selezionare la porta di ascolto su cui vengono ricevute le richieste.
- Numero massimo di connessioni (opzionale): definisce il numero massimo di connessioni simultanee consentite dal listener.
- HTTPS redirect: Fare clic sul pulsante di attivazione per abilitare la configurazione del reindirizzamento HTTPS, quindi specificare le seguenti impostazioni di reindirizzamento HTTPS:
- HTTPS listener: L'ascoltatore HTTPS di destinazione verso il quale viene reindirizzato il traffico in arrivo dall'ascoltatore HTTP corrente. Si noti che viene visualizzato solo un elenco di ascoltatori HTTPS il
cui valore
accept_proxy_protocolè lo stesso dell'ascoltatore HTTP. - Redirect URI (opzionale): l' URL a a cui reindirizza la richiesta.
- Codice stato: il codice di stato della risposta restituita dal programma di bilanciamento del carico.
- HTTPS listener: L'ascoltatore HTTPS di destinazione verso il quale viene reindirizzato il traffico in arrivo dall'ascoltatore HTTP corrente. Si noti che viene visualizzato solo un elenco di ascoltatori HTTPS il
cui valore
-
Se si desidera reindirizzare, inoltrare o rifiutare un determinato traffico in entrata per un listener front-end HTTP o HTTPS in base a determinati criteri, configurare le politiche di livello 7.
- Dopo che lo stato del programma di bilanciamento del carico diventa Active, fai clic su Front-end listeners nel riquadro di navigazione e fai clic sul valore nella colonna Policies per il listener che hai creato.
- Nella pagina Policies, fai clic su Add policy e specifica le seguenti informazioni per creare una politica. Puoi creare più politiche.
- Name: immetti un nome per la politica, ad esempio
my-policy. Il nome deve essere univoco all'interno del listener. - Action: l'azione da intraprendere quando tutte le regole della politica corrispondono. È possibile rifiutare una richiesta con una risposta 403, reindirizzare la richiesta a un codice di risposta e di configurazione dell' URL, reindirizzare il traffico da un listener HTTP a un listener HTTPS o inoltrare la richiesta a un pool di back-end specifico. Se una richiesta in entrata non corrisponde alle regole di alcuna politica, la richiesta viene inoltrata al pool di backend predefinito del listener.
- Priority: all'interno di ciascun tipo di azione, le politiche vengono valutate in ordine crescente di priorità. Le politiche per rifiutare il traffico vengono sempre valutate per prime, indipendentemente dalla loro priorità. Successivamente, vengono valutate le politiche per reindirizzare il traffico, seguite dalle politiche per inoltrare il traffico.
- Redirect: l'URL a cui viene reindirizzata la richiesta, se l'azione è impostata su Redirect. Devi fornire un indirizzo URI completo ( URL ) o i parametri di un URI. Quando si utilizza un URL, tutto
il traffico in entrata viene reindirizzato a questo URL. Quando si utilizzano parametri URI, i valori della richiesta di traffico in entrata possono essere conservati utilizzando i valori in entrata dei parametri. Ciò include il
protocollo, la porta, l'host, il percorso e la query. I valori predefiniti dei parametri URI sono uguali ai loro valori originali in entrata. Per conservare i valori in entrata, fornirli come
{protocol},{port},{host},{path}, E{query}. Ad esempio, se l'host della richiesta in arrivo èibm.com, il valore predefinito è{host}uguale al valoreibm.comin arrivo. - Status Code: il codice di stato della risposta restituita dal programma di bilanciamento del carico, se l'azione è impostata su Redirect.
- Forward: il pool di backend delle VSI (virtual server instance) a cui viene inoltrata la richiesta, se l'azione è impostata su Forward to pool.
- Name: immetti un nome per la politica, ad esempio
- Nella pagina Policies (Criteri) è anche possibile creare un criterio di reindirizzamento HTTPS con la seguente configurazione:
- Name: immetti un nome per la politica, ad esempio
my-policy. Il nome deve essere univoco all'interno del listener. - Azione: selezionare l'opzione Reindirizza a HTTPS.
- HTTPS listener: L'ascoltatore HTTPS di destinazione verso il quale viene reindirizzato il traffico dell'ascoltatore HTTP corrente. Si noti che viene visualizzato solo un elenco di ascoltatori HTTPS il cui valore
accept_proxy_proxyè lo stesso dell'ascoltatore HTTP. - Redirect URI (opzionale): l' URL a a cui reindirizza la richiesta.
- Codice stato: il codice di stato della risposta restituita dal programma di bilanciamento del carico.
- Name: immetti un nome per la politica, ad esempio
- Nella pagina Policies, fai clic su Add rule per la tua politica. Se per la politica esistono delle regole, fai clic sul valore nella colonna Rules per aggiungere altre regole.
- Nella finestra Rules, fai clic su Add rule e specifica le seguenti informazioni per creare una regola. Se crei più regole per una politica, la politica viene applicata solo quando viene trovata una corrispondenza per tutte
le sue regole.
- Condition: specifica la condizione con cui viene valutata una regola.
- Type: il tipo di informazioni che devono essere valutate dalla regola: il nome dell'host da cui è originata la richiesta, un campo di intestazione HTTP o un percorso nell'URL.
- Value: il valore di cui trovare una corrispondenza.
- Key: il nome del campo di intestazione HTTP da valutare, se il tipo di regola è Header. Ad esempio, per trovare una corrispondenza con un cookie nell'intestazione HTTP, immetti Cookie per la chiave.
Creazione di un programma di bilanciamento del carico dell'applicazione dalla CLI
L'esempio seguente illustra come utilizzare l'interfaccia a riga di comando (CLI) per creare un bilanciamento del carico applicativo ( Application Load Balancer for VPC, ALB). In questo esempio, si trova davanti a un'istanza di server virtuale
VPC (ID 0716_6acdd058-4607-4463-af08-d4999d983945) che esegue un server TCP in ascolto sulla porta 9090. Il bilanciatore di carico dispone di un ascoltatore front-end, che consente un accesso sicuro al server TCP.
Per creare un programma di bilanciamento del carico dell'applicazione dalla CLI, attieniti a questa procedura:
-
Configura il tuo ambiente CLI.
-
Utilizza il terminale per accedere all'account utilizzando la CLI. Una volta immessa la parola d'ordine, il sistema richiede quale account e regione si desidera utilizzare:
ibmcloud login --sso -
Crea un programma di bilanciamento del carico:
ibmcloud is load-balancer-create alb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family applicationOutput di esempio:
ibmcloud is load-balancer-create my-lb public --subnet my-subnet Creating load balancer my-lb under account vpcdemo as user test@ibm.com.. ID r026-ec6717fa-aa6c-46c4-94ff-4ccd193ee423 Name my-lb CRN crn:v1:bluemix:public:is:au-syd:a/7f75c7b025e54bc5635f754b2f888665::load-balancer:r026-ec6717fa-aa6c-46c4-94ff-4ccd193ee423 Family application Host name ec6717fa-au-syd.lb.appdomain.cloud Subnets ID Name 02h7-16f74a61-b586-4143-92df-dbc4a047bd5c my-subnet Public IPs Private IPs Provision status create_pending Operating status offline Is public true Is private path false Listeners Pools ID Name Resource group ID Name bdd96715c2a44f2bb60df4ff14a543f5 - Created 2026-05-26T14:47:06+05:30 Availability subnet Instance Group Supported true SourceIP Session Supported true Security groups supported true UDP Supported false Failsafe policy actions fail,drop,forward Access mode public Advanced Health Checks Supported true FQDN Pool Members Supported true -
Creare un pool:
ibmcloud is load-balancer-pool-create alb-pool r134-1b3d2967-d395-4023-8705-829454081e23 weighted_round_robin tcp 10 --failsafe-policy-action forward --failsafe-policy-target pool2Output di esempio:
Creating pool alb-pool of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 Name alb-pool Protocol tcp Algorithm weighted_round_robin Instance group ID Name - - Health monitor Type Port Health monitor URL Delay Retries Timeout http 8080 / 10 2 5 Failsafe policy Action Target ID Target name Healthy Member Threshold Count forward r006-815e16e7-8729-4d9e-9203-936a6b615ee1 pool2 0 Session persistence type source_ip Members Provision status active Created 2020-08-27T14:45:42.038-05:00 -
Creare un membro:
ibmcloud is load-balancer-pool-member-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 9090 0716_6acdd058-4607-4463-af08-d4999d983945 --weight 70Output di esempio:
Creating member of pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 under account IBM Cloud Network Services as user test@ibm.com... ID r006-61f8b000-a90d-4abe-909e-c507dffec565 Port 9090 Target 0716_6acdd058-4607-4463-af08-d4999d983945 Weight 70 Health unknown Created 2020-08-27T14:59:55.446-05:00 Provision status create_pending -
Creare un listener:
$ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 -idle-connection-timeout 30Output di esempio:
$ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 -idle-connection-timeout 30 Sample output: Creating listener of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba Certificate instance - Connection limit - Idle connection timeout 30 Port 7070 Protocol tcp Default pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 Provision status create_pending Created 2020-08-27T15:16:08.643-05:00Per ulteriori opzioni, vedere il riferimento alla VPC CLI per i bilanciatori di carico.
-
Creare una politica:
ibmcloud is load-balancer-listener-policy-create 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 --action redirect --priority 2 --target-http-status-code 301 --target-url "https://{host}:443/{path}"Output di esempio:
Creating policy of load balancer listener 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 under account IBM Cloud Network Services as user test@ibm.com... ID r006-4847a949-f9b6-4fc1-71c6-d1c49dac3ebc Action redirect Priority 2 Http status code 301 Target Url https://{host}:443/{path} Provision status create_pending Created 2024-04-23T15:16:08.643-05:00 -
Ottieni i dettagli sul tuo programma di bilanciamento del carico:
ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776Output di esempio:
Getting load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Name alb-test CRN crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Family Application Host name 99b5ab45-us-south.lb.test.appdomain.cloud Subnets ID Name 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c alb-subnet Public IPs 150.238.50.78, 150.238.54.95 Private IPs 10.240.0.58, 10.240.0.59 Provision status active Operating status online Is public true Listeners r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba Pools ID Name r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 alb-pool Resource group ID Name 3021f90279574ce287dd5fba82c08899 Default Created 2020-08-27T14:34:34.732-05:00
Creazione di un programma di bilanciamento del carico dell'applicazione con l'API
L'esempio seguente illustra come utilizzare l'API per creare un bilanciatore di carico dell'applicazione a fronte di due istanze di server virtuali VPC (192.168.100.5 e 192.168.100.6) che eseguono un'applicazione web
in ascolto sulla porta 80. Il programma di bilanciamento del carico ha un listener front-end che consente un accesso protetto all'applicazione web utilizzando HTTPS.
L'esempio ignora i passi prerequisiti per l'utilizzo dell'API per il provisioning di un VPC, delle sottoreti e delle istanze.
Per creare un programma di bilanciamento del carico dell'applicazione con l'API, attieniti alla seguente procedura:
-
Memorizzare i seguenti valori nelle variabili da utilizzare nel comando API:
ResourceGroupId- Per prima cosa, ottieni il gruppo di risorse e popola la variabile:
export ResourceGroupId=<your_resourcegroup_id>È possibile trovare l'ID del gruppo di risorse anche utilizzando la console IBM Cloud. Dal browser, apri la console IBM Cloud ed effettua l'accesso al tuo account. Selezionare Gestione > Account > Gruppi di risorse.
-
Creare un bilanciatore di carico con un ascoltatore, un pool e istanze di server collegate (membri del pool) con il seguente codice di esempio:
curl -H "Authorization: Bearer $iam_token" -X POST "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \ -d @alb_create_payload.json Where alb_create_payload.json has the following content: '{ "name": "example-balancer", "is_public": true, "listeners": [ { "certificate_instance": { "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/123456:b8877ea4-b8eg-467e-912a-da1eb7f031cg:certificate:43219c4c97d013fb2a95b21dddde1234" }, "port": 443, "protocol": "https", "idle_connection_timeout" : 80, "default_pool": { "name": "example-pool" } } ], "pools": [ { "algorithm": "round_robin", "health_monitor": { "delay": 5, "max_retries": 2, "timeout": 2, "type": "tcp", "url_path": "/" }, "name": "example-pool", "protocol": "tcp", "session_persistence": { "cookie_name": "string", "type": "source_ip" }, "members": [ { "port": 80, "target": { "address": "192.168.100.5" }, "weight": 50 }, { "port": 80, "target": { "address": "192.168.100.6" }, "weight": 50 } ] } ], "subnets": [ { "id": "7ec87131-1c7e-4990-b4f0-a26f2e61f98e" } ] }'Per ulteriori opzioni, consultare il riferimento all'API VPC per i bilanciatori di carico.
Output di esempio:
{ "created_at": "2018-07-12T23:17:07.5985381Z", "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "hostname": "ac34687d.lb.appdomain.cloud", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "is_public": true, "profile": { "name": "network-fixed" }, "listeners": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004" } ], "name": "example-balancer", "operating_status": "offline", "pools": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004", "name": "example-pool" } ], "provisioning_status": "create_pending", "resource_group": { "id": "56969d60-43e9-465c-883c-b9f7363e78e8" }, "subnets": [ { "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "name": "example-subnet" } ] }Salva l'ID del programma di bilanciamento del carico da utilizzare nei passi successivi. Ad esempio, salvalo nella variabile
lbid.lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727 -
Ottieni informazioni dettagliate sul bilanciatore di carico
curl -H "Authorization: Bearer $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"Attendi che venga eseguito il provisioning. Quando è pronto, il programma di bilanciamento del carico viene impostato sullo stato
onlineeactive, come mostrato nel seguente output di esempio:{ "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "name": "example-balancer", "created_at": "2018-07-13T22:22:24.489Z", "hostname": "dd754295-e9e0-4c9d-bf6c-58fbc59e5727.lb.appdomain.cloud", "is_public": true, "profile": { "name": "network-fixed" }, "listeners": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004" } ], "operating_status": "online", "pools": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004", "name": "example-pool" } ], "private_ips": [ { "address": "192.168.10.5" }, { "address": "192.168.10.6" } ], "provisioning_status": "active", "public_ips": [ { "address": "169.11.111.115" }, { "address": "169.11.111.116" } ], "resource_group": { "id": "0738-56969d60-43e9-465c-883c-b9f7363e78e8" }, "subnets": [ { "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "name": "example-subnet" } ] }