Configura il bilanciamento del carico manuale

Questa pagina illustra i requisiti di bilanciamento del carico quando si utilizza il caricamento manuale. e del bilanciamento del carico. A differenza del caricamento in bundle di bilanciamento in cui Google Distributed Cloud esegue il deployment di bilanciatori del carico nei nodi del cluster per il piano di controllo e del piano dati, con il bilanciamento del carico manuale configuri di soluzioni di bilanciamento del carico per il traffico del piano di controllo e del piano dati.

Prima di creare, devi configurare un bilanciatore del carico esterno per il piano di controllo un ammasso bare metal. Il bilanciatore del carico del piano di controllo esterno può essere utilizzato anche per il traffico del piano dati oppure puoi configurare un bilanciatore del carico separato aereo. Ad esempio, puoi utilizzare un bilanciatore del carico nel cluster MetalLB per il traffico del piano dati.

Oltre a spiegare i requisiti di bilanciamento del carico, questa pagina descrive per configurare il bilanciamento del carico manuale utilizzando F5 BIG-IP.

Prerequisiti

Le seguenti sezioni descrivono i prerequisiti per la configurazione del caricamento manuale e del bilanciamento del carico.

Indirizzo IP richiesto

Devi pianificare i VIP prima di creare un cluster. Tutti i cluster richiedono un VIP il piano di controllo. Tutti gli utenti cluster richiedono un secondo VIP per il servizio in entrata.

Questi VIP possono essere in qualsiasi subnet IPv4 instradabile dal bilanciatore del carico. La Il VIP del piano di controllo deve essere raggiungibile da tutti i nodi del cluster e dall'amministratore workstation su cui esegui bmctl.

Quando crei il cluster, il deployment del servizio in entrata viene eseguito utilizzando il VIP specificato nel file di configurazione del cluster. Puoi configurare il bilanciamento del carico per questo IP dopo la creazione del cluster.

Devi conoscere gli indirizzi IP che utilizzerai per i nodi che verranno utilizzati dai nodi del piano di controllo.

Requisiti del bilanciatore del carico del piano di controllo esterno

Il bilanciatore del carico del piano di controllo deve essere configurato prima di creare il cluster. Il bilanciatore del carico del piano di controllo deve soddisfare i seguenti requisiti:

  • Un servizio virtuale (frontend) per il VIP del piano di controllo. Lo stato del piano di controllo La porta di ascolto predefinita è 443. Tuttavia, se specifichi una porta diversa Campo loadBalancer.ports.controlPlaneLBPort dell'utilizzo del file di configurazione del cluster quella porta per il servizio virtuale.
  • Un gruppo di backend contenente tutti gli indirizzi IP del controllo del cluster nodi del piano. La porta di backend su cui il piano di controllo rimane in ascolto è 6444.
  • Un controllo di integrità che monitora i nodi di backend. Il controllo di integrità deve utilizzare HTTPS e controlla l'endpoint /readyz sulla porta 6444. Il controllo di integrità deve verifica che questo endpoint restituisca il codice di stato 200 per considerare il nodo integro.

Se il bilanciatore del carico esterno non è configurato correttamente, il cluster è probabile che il bootstrapping non vada a buon fine. Un preflight check verifica che il carico esterno che il bilanciatore del carico sia configurato correttamente, inclusa la verifica che sia un controllo di integrità dell'endpoint /readyz.

Reimposta le connessioni sui nodi con errori (consigliato)

Oltre ai requisiti precedenti, ti consigliamo di configurare il carico per reimpostare le connessioni client quando rileva un errore del nodo di backend. Senza questa configurazione, i client del server API Kubernetes possono arrestarsi rispondere per diversi minuti quando un'istanza del server smette di funzionare, causando instabilità nel piano di controllo Kubernetes.

  • Con F5 BIG-IP, questa impostazione è denominata Azione in caso di inattività del servizio nel backend di configurazione del pool.
  • Con HAProxy, questa impostazione viene chiamata sessioni di arresto con flag down-marked nel del server di backend.
  • Se usi un bilanciatore del carico diverso, consulta la documentazione per trovare l'impostazione equivalente.

Configura il cluster

Prima di creare un cluster Google Distributed Cloud, devi crearlo di configurazione del deployment con bmctl. Modifica questo file per abilitare il bilanciamento del carico manuale nel cluster:

  1. Imposta il campo loadBalancer.mode su manual.
  2. Imposta il campo loadBalancer.vips.controlPlaneVIP sul VIP che vuoi configurate sul bilanciatore del carico.
  3. Rimuovi o commenta la sezione loadBalancer.addressPools.

Dopo aver completato la modifica del file di configurazione, inclusi i campi non correlati a il bilanciamento del carico, verifica che il VIP del piano di controllo sia configurato correttamente del bilanciatore del carico eseguendo i controlli preflight:

bmctl check preflight -c CLUSTER_NAME

Sostituisci CLUSTER_NAME con il nome del cluster.

Supporta i servizi LoadBalancer nei cluster utente

Devi configurare il bilanciamento del carico per supportare il servizio LoadBalancer di Kubernetes In modalità di bilanciamento del carico manuale, Google Distributed Cloud non esegue automaticamente il provisioning in modo che i servizi LoadBalancer non funzionino a meno che non si esegua il provisioning e configurare i bilanciatori del carico in modo che puntino i servizi.

Inoltre, Google Distributed Cloud esegue automaticamente il deployment di un servizio in entrata in di cluster utente utilizzando un servizio LoadBalancer. Per essere accessibile dall'esterno, questo Il servizio LoadBalancer richiede un bilanciatore del carico configurato per puntare al servizio.

Le opzioni per supportare i servizi LoadBalancer includono:

  • configurare manualmente il bilanciatore del carico per ogni servizio LoadBalancer in in un cluster Kubernetes. Vedi Configurazione del supporto per i servizi LoadBalancer per un esempio utilizzando F5 BIG-IP.
  • Installa un controller del bilanciatore del carico nel cluster che configura l'interfaccia quando vengono creati i servizi LoadBalancer.
  • Installa una soluzione di bilanciamento del carico nel cluster come MetalLB.

Bilanciamento del carico manuale con F5 BIG-IP

Questa sezione descrive come configurare il bilanciamento del carico manuale con F5 BIG-IP come il bilanciatore del carico esterno. Se utilizzi un bilanciatore del carico diverso, consulta la documentazione per quel bilanciatore del carico e utilizzare questi passaggi come modello.

configura il bilanciatore del carico del piano di controllo

Prima di creare un cluster, devi configurare il bilanciatore del carico del piano di controllo. Dopo il giorno seguendo questi passaggi, puoi configurare il cluster e crearlo.

Crea una partizione per il cluster

Ogni cluster deve avere il proprio partizione. Usa l'utilità di configurazione di BIG-IP per creare una partizione:

  1. Vai a Sistema > Utenti > Elenco delle partizioni.
  2. Fai clic su Crea.
  3. Inserisci un nome per la partizione.
  4. Fai clic su Fine.

Nei passaggi successivi, creerai oggetti in questa partizione. Assicurati che questo sia selezionata nel menu a discesa nell'angolo superiore destro della UI per ognuna delle seguenti attività in modo che ogni oggetto venga creato della partizione di testo.

Crea un monitoraggio

Crea un monitor per eseguire controlli di integrità sui nodi del piano di controllo:

  1. Vai a Traffico locale > Monitora.
  2. Fai clic su Crea.
  3. Inserisci un nome per il monitor (ad esempio, https_readyz).
  4. Imposta il Tipo su HTTPS.
  5. Per Send String (Invia stringa), inserisci GET /readyz HTTP/1.1\r\nHost: \r\nConnection: close.
  6. In Stringa di ricezione, inserisci HTTP/1.1 200.
  7. Fai clic su Fine.

Crea nodi

Crea un nodo che punta ai nodi del piano di controllo. Se il tuo cluster ha un'alta disponibilità (HA) con più nodi del piano di controllo, crea un oggetto node per ciascun nodo del piano di controllo.

  1. Vai a Traffico locale > Nodi > Elenco di nodi.
  2. Fai clic su Crea.
  3. Inserisci un nome per il nodo.
  4. Inserisci l'indirizzo IP del nodo nel campo Indirizzo.
  5. Fai clic su Fine.

Crea un pool di backend

Crea un piscina per i nodi del piano di controllo:

  1. Vai a Traffico locale > Piscine > Elenco pool.
  2. Fai clic su Crea.
  3. Seleziona Avanzate dall'elenco a discesa Configurazione.
  4. Inserisci un nome per il pool.
  5. Seleziona il monitoraggio di integrità creato in precedenza.
  6. Imposta Azione in caso di mancato funzionamento del servizio su Rifiuta (leggi la discussione su questa impostazione) nella sezione Reimpostazione delle connessioni sui nodi con errori).
  7. Aggiungi il nodo del piano di controllo al pool. Se il cluster ha più controlli nodi del piano, ripeti questi passaggi per ciascun nodo:
    1. Nella sezione Nuovi membri, fai clic su Elenco nodi, quindi seleziona l'icona creato in precedenza.
    2. Nel campo Porta servizio, inserisci 6444.
    3. Fai clic su Aggiungi.

Crea un server virtuale

Crea una campagna virtuale server web per il piano di controllo:

  1. Vai a Traffico locale > Server virtuali > Elenco di server virtuali.
  2. Fai clic su Crea.
  3. Inserisci un nome per il server virtuale.
  4. Imposta Tipo su Standard.
  5. Inserisci 0.0.0.0/0 nel campo Indirizzo di origine per consentire il traffico proveniente da qualsiasi sorgente.
  6. Inserisci il VIP del piano di controllo come Indirizzo di destinazione.
  7. Inserisci Porta di servizio come porta del piano di controllo. Il valore predefinito è 443. ma è configurabile e deve corrispondere a ciò che configuri nel cluster configurazione per loadBalancer.ports.controlPlaneLBPort.
  8. Nel campo Source Address Translation, seleziona Auto Map (Mappa automatica).
  9. In Pool predefinito, seleziona il pool creato in precedenza dal menu a discesa.
  10. Fai clic su Fine.

Configura il supporto per i servizi LoadBalancer

In modalità di bilanciamento del carico manuale, Google Distributed Cloud non esegue automaticamente il provisioning bilanciatori del carico per il supporto del LoadBalancer Google Cloud. Per ulteriori informazioni, consulta Supportare i servizi LoadBalancer nei cluster utente informazioni.

Questa sezione mostra come configurare manualmente un bilanciatore del carico BIG-IP F5 per un servizio LoadBalancer. Ripeti questi passaggi per ogni servizio LoadBalancer che vuoi da esporre.

Prerequisiti

Per configurare un servizio LoadBalancer, devi conoscere il VIP vuoi esporlo tramite il bilanciatore del carico, la porta su cui vuoi esporla il NodePort utilizzato dal servizio LoadBalancer in Kubernetes.

Dopo aver eseguito il deployment di un servizio LoadBalancer nel cluster, determina NodePort utilizzato per il servizio LoadBalancer. Il seguente comando mostrerà porte del servizio:

kubectl --kubeconfig KUBECONFIG get service SERVICE_NAME -oyaml

Sostituisci quanto segue:

  • KUBECONFIG con il percorso del file kubeconfig da utilizzare.
  • SERVICE_NAME con il nome del servizio LoadBalancer.

L'output di kubctl get service include una sezione ports. Ogni voce di porta mostra la porta nodePort esposta per la porta sul servizio, che è a cosa configuri il backend del bilanciatore del carico. Il seguente esempio mostra la struttura della sezione ports:

spec:
  clusterIP: 172.26.232.107
  externalTrafficPolicy: Cluster
  loadBalancerIP: 21.0.101.77
  ports:
  - name: status-port
    nodePort: 30281
    port: 15021
    protocol: TCP
    targetPort: 15021
  - name: http
    nodePort: 30124
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    nodePort: 31858
    port: 443
    protocol: TCP
    targetPort: 443

Sono presenti porte per il traffico HTTP e HTTPS. Puoi esporre una o entrambe tramite il bilanciatore del carico.

Se esponi il servizio in entrata di cui viene eseguito il deployment automatico in tutti di cluster, il servizio LoadBalancer si chiama istio-ingress e si trova gke-system. Trova le porte con questo comando:

kubectl --kubeconfig KUBECONFIG -n gke-system get service istio-ingress -oyaml

Il servizio in entrata è configurato con un loadBalancerIP che è l'IP fornito nel campo loadBalancer.vips.ingressVIP nel cluster iniziale configurazione. Devi esporre questo VIP per esporre il servizio in entrata sul con un bilanciatore del carico esterno.

Crea un pool di backend

  1. Vai a Traffico locale > Piscine > Elenco pool.
  2. Fai clic su Crea.
  3. Inserisci un nome per il pool.
  4. Seleziona tcp come monitoraggio di integrità.
  5. Aggiungi nodi worker al pool di nodi. Ripeti questi passaggi per ciascun nodo. Puoi aggiungi piani di controllo e nodi worker come i NodePort di Kubernetes accessibile su qualsiasi nodo nel cluster.
    1. Nella sezione Nuovi membri, fai clic su Elenco nodi, quindi seleziona uno dei nodi creati in precedenza.
    2. Nel campo Porta servizio, inserisci il valore NodePort per il servizio.
    3. Fai clic su Aggiungi.

Crea un server virtuale

  1. Vai a Traffico locale > Server virtuali > Elenco di server virtuali.
  2. Fai clic su Crea.
  3. Inserisci un nome per il server virtuale.
  4. Imposta Tipo su Standard.
  5. Inserisci 0.0.0.0/0 nel campo Indirizzo di origine per consentire il traffico proveniente da qualsiasi sorgente.
  6. Inserisci il VIP del servizio del bilanciatore del carico come Indirizzo di destinazione.
  7. Inserisci come Porta di servizio la porta esposta per il servizio del bilanciatore del carico.
  8. Nel campo Source Address Translation, seleziona Auto Map (Mappa automatica).
  9. In Pool predefinito, seleziona il pool creato in precedenza dal menu a discesa.
  10. Fai clic su Fine.