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:

  1. Dal browser, apri la console IBM Cloud ed effettua l'accesso al tuo account.

  2. Selezionare l' icona Menu del menu di navigazione, quindi fare clic sull'icona Infrastruttura VPC > Rete > Bilanciatori di carico.

  3. Nella pagina "Bilanciatori di carico per VPC", fare clic su Crea.

  4. Per il tipo di bilanciatore di carico, selezionare il riquadro " Application Load Balancer (ALB) ".

  5. 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.
  6. 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.

  7. 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, 60 e 30. 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.
  8. (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 GET o POST. È possibile personalizzare le intestazioni delle richieste per entrambi i metodi. È possibile, se lo si desidera, personalizzare il corpo della richiesta quando si utilizza il metodo POST.
    • 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, referrer o user-agent. Per il metodo di richiesta " POST ", scegliere una delle seguenti opzioni: content-type, content-length, application-json o accept-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.

  9. (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 https anziché 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.

  10. Fai clic su Crea per creare il pool di backend.

    È possibile collegare le istanze del server dopo aver creato un pool di back-end.

  11. 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 a 0 può 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 a 0 può 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.

  12. 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.
  13. Fare clic su Crea per creare il listener front - end.

  14. 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.

  15. Dopo aver completato la creazione di pool e listener, fai clic su Create load balancer.

  16. 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.

  17. 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 pool failsafe_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.
  18. 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.
  19. 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 valore ibm.com in 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.
    • 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.
    • 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:

  1. Configura il tuo ambiente CLI.

  2. 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
    
  3. Crea un programma di bilanciamento del carico:

    ibmcloud is load-balancer-create alb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family application
    

    Output 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     
    
  4. 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 pool2
    

    Output 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
    
  5. 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 70
    

    Output 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
    
  6. 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 30
    

    Output 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:00
    

    Per ulteriori opzioni, vedere il riferimento alla VPC CLI per i bilanciatori di carico.

  7. 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
    
  8. Ottieni i dettagli sul tuo programma di bilanciamento del carico:

    ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    

    Output 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:

  1. Configura il tuo ambiente API .

  2. 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.

  3. 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
    
  4. 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 online e active, 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"
        }
      ]
    }