Attivazione della modalità di bilanciamento del carico manuale

Ti consigliamo di configurare una delle seguenti modalità di bilanciamento del carico:

  • Con la modalità in bundle, Google Distributed Cloud fornisce e gestisce il bilanciatore del carico. Non è necessario acquistare una licenza per un bilanciatore del carico e la quantità di configurazione da eseguire è minima.

  • Con la modalità manuale, Google Distributed Cloud utilizza un bilanciatore del carico a tua scelta, come F5 BIG-IP o Citrix. La modalità di bilanciamento del carico manuale richiede più configurazioni rispetto alla modalità in bundle.

Il bilanciamento del carico manuale è supportato per i seguenti tipi di cluster:

  • Cluster utente in cui è abilitato il piano di controllo V2. Con Controlplane V2, i nodi del piano di controllo per un cluster utente si trovano nel cluster utente stesso.

  • di cluster utente che usano kubeception. Il termine kubeception si riferisce al caso in cui il piano di controllo per un cluster utente viene eseguito su uno o più nodi nel cluster di amministrazione. Se il piano di controllo V2 non è abilitato, un cluster utente utilizza kubeception.

In questa pagina vengono descritti i passaggi da seguire se scegli di utilizzare la modalità di bilanciamento del carico manuale.

In questo argomento, assegnerai gli indirizzi IP ai nodi del piano di controllo e ai nodi worker in modo da utilizzarli in un secondo momento. Puoi anche mettere da parte gli indirizzi IP per gli IP virtuali (VIP) e decidere i valori nodePort. L'idea è scegliere gli indirizzi IP e i valori nodePort da utilizzare e poi registrarli in un foglio di lavoro o in qualche altro strumento. Quando è tutto pronto per creare i cluster, avrai bisogno degli indirizzi IP e dei valori nodePort per compilare i file di configurazione per il cluster di amministrazione e il cluster utente, nonché i file di blocco IP per i cluster.

Avrai bisogno anche degli indirizzi IP e dei valori nodePort quando configuri manualmente il bilanciatore del carico per i cluster utente.

Mettere da parte gli indirizzi IP dei nodi

Con la modalità di bilanciamento del carico manuale, non puoi utilizzare DHCP. Devi specificare indirizzi IP statici per i nodi del cluster. Devi riservare un numero sufficiente di indirizzi per i nodi nel cluster di amministrazione e per i nodi in tutti i cluster utente che intendi creare. Per maggiori dettagli sul numero di indirizzi IP dei nodi da escludere, consulta Pianificare gli indirizzi IP (Controlplane V2) e Pianificare gli indirizzi IP (kubeception).

Configura indirizzi IP

La configurazione degli indirizzi IP statici che hai impostato dipende dal tipo di cluster e dal fatto che il piano di controllo V2 sia abilitato sui cluster utente.

Cluster di amministrazione ad alta disponibilità

La tabella seguente descrive a cosa servono gli indirizzi IP e dove li configuri per i cluster di amministrazione ad alta disponibilità.

IP statici Configurazione
Nodi del piano di controllo File di configurazione del cluster di amministrazione nella sezione network.controlPlaneIPBlock.ips
1.16 e precedenti: nodi aggiuntivi File del blocco IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster di amministrazione

Nella versione 1.28 e successive, i nuovi cluster di amministrazione ad alta disponibilità non hanno nodi aggiuntivi, quindi non è necessario riservare indirizzi IP per i nodi dei componenti aggiuntivi come nelle versioni precedenti.

Cluster di amministrazione non ad alta disponibilità

La tabella seguente descrive a cosa servono gli indirizzi IP e dove li configuri per i cluster di amministrazione non ad alta disponibilità.

IP statici Configurazione
Nodo piano di controllo File del blocco IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster di amministrazione
Nodi aggiuntivi File del blocco IP del cluster di amministrazione

Nella versione 1.28 e successive, tutti i nuovi cluster di amministrazione devono essere cluster ad alta disponibilità con 3 nodi del piano di controllo.

Cluster utente CP V2

La tabella seguente descrive a cosa servono gli indirizzi IP e dove li configuri per i cluster utente con Controlplane V2 abilitato.

IP statici Configurazione
Nodi del piano di controllo File di configurazione del cluster utente nella sezione network.controlPlaneIPBlock.ips
Nodi worker File del blocco IP del cluster utente e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster utente

Cluster utente Kubeception

La tabella seguente descrive a cosa servono gli indirizzi IP e dove li configuri per i cluster utente che utilizzano kubeception.

IP statici Configurazione
Nodi del piano di controllo File del blocco IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster di amministrazione
Nodi worker File del blocco IP del cluster utente e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster utente

Riservare gli indirizzi IP per i VIP

Indipendentemente dal fatto che utilizzi la modalità di bilanciamento del carico integrato, in bundle o manuale, devi accantonare diversi indirizzi IP che intendi utilizzare per IP virtuali (VIP) per il bilanciamento del carico. Questi VIP consentono ai client esterni di raggiungere i server API Kubernetes e il tuo servizio in entrata nei cluster utente.

Configura VIP

La configurazione dei VIP dipende dal tipo di cluster.

Cluster di amministrazione ad alta disponibilità

La tabella seguente descrive lo scopo del VIP e dove lo configuri per i cluster di amministrazione ad alta disponibilità.

VIP Configurazione
VIP per il server API Kubernetes del cluster di amministrazione File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.controlPlaneVIP
1.15 e precedenti: VIP aggiuntivi File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.addonsVIP

Tieni presente le seguenti differenze nelle versioni:

  • Nella versione 1.16 e successive, non è necessario configurare un VIP per i componenti aggiuntivi per i cluster di amministrazione ad alta disponibilità.

  • Nella versione 1.28 e successive, i nuovi cluster di amministrazione ad alta disponibilità non hanno nodi aggiuntivi.

Cluster di amministrazione non ad alta disponibilità

La tabella seguente descrive a cosa serve il VIP e dove lo configuri per i cluster di amministrazione non ad alta disponibilità.

VIP Configurazione
VIP per il server API Kubernetes del cluster di amministrazione File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.controlPlaneVIP
1.15 e precedenti: VIP aggiuntivi File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.addonsVIP

Tieni presente le seguenti differenze nelle versioni:

Nella versione 1.16 e successive, non è necessario configurare un VIP per i componenti aggiuntivi per i cluster di amministrazione non ad alta disponibilità.

Cluster utente CP V2

La tabella seguente descrive a cosa servono i VIP e dove li configuri per i cluster utente con Controlplane V2 abilitato.

VIP Configurazione
VIP per il server API Kubernetes del cluster utente File di configurazione del cluster utente nel campo loadBalancer.vips.controlPlaneVIP
VIP per il servizio in entrata nel cluster utente File di configurazione del cluster utente nel campo loadBalancer.vips.ingressVIP

Cluster utente Kubeception

La tabella seguente descrive a cosa servono i VIP e dove li configuri per i cluster utente che utilizzano kubeception.

VIP Configurazione
VIP per il server API Kubernetes del cluster utente File di configurazione del cluster utente nel campo loadBalancer.vips.controlPlaneVIP
VIP per il servizio in entrata nel cluster utente File di configurazione del cluster utente nel campo loadBalancer.vips.ingressVIP

Mettere da parte nodePort valori

In Google Distributed Cloud, il server API Kubernetes e il servizio in entrata sono esposti dai servizi Kubernetes. Con la modalità di bilanciamento del carico manuale, devi scegliere i tuoi valori nodePort per questi servizi. Scegli valori compresi tra 30.000 e 32.767.

Configura i valori di nodePort

La configurazione dei valori nodePort dipende dall'abilitazione o meno del piano ControlPlane V2 nel cluster utente.

Cluster di amministrazione ad alta disponibilità

La tabella seguente descrive a cosa serve nodePort e dove lo configuri per i cluster di amministrazione ad alta disponibilità.

nodePort Configurazione
1.15 e precedenti: nodePort per i nodi dei componenti aggiuntivi File di configurazione del cluster di amministrazione nel campo loadBalancer.manualLB.addonsNodePort

Nella versione 1.16 e successive, non è necessario configurare un nodePort per i nodi aggiuntivi per i cluster di amministrazione ad alta disponibilità.

Cluster di amministrazione non ad alta disponibilità

La tabella seguente descrive a cosa servono i valori nodePort e dove li configuri per i cluster di amministrazione non ad alta disponibilità.

nodePort Configurazione
1.16 e precedenti: nodePort per il server API Kubernetes del cluster di amministrazione 1.15 e precedenti: file di configurazione del cluster di amministrazione nel campo loadBalancer.vips.controlPlaneNodePort
1.15 e precedenti: nodePort per i nodi dei componenti aggiuntivi File di configurazione del cluster di amministrazione nel campo loadBalancer.manualLB.addonsNodePort

Nella versione 1.16 e successive, non è necessario configurare un nodePort per i nodi aggiuntivi dei cluster di amministrazione non ad alta disponibilità.

Cluster utente CP V2

La tabella seguente descrive a cosa servono nodePorts e dove li configuri per i cluster utente con Controlplane V2 abilitato.

nodePorts Configurazione
HTTP nodePort per il servizio in entrata nel cluster utente File di configurazione del cluster utente in loadBalancer.manualLB.ingressHTTPNodePort
HTTPS nodePort per il servizio in entrata nel cluster utente File di configurazione del cluster utente in loadBalancer.manualLB.ingressHTTPSNodePort

Non è necessario configurare un nodePort per il VIP del piano di controllo perché Google Distributed Cloud gestisce il bilanciamento del carico verso i nodi del piano di controllo per i cluster utente con il piano di controllo V2 abilitato.

Cluster utente Kubeception

La seguente tabella descrive a cosa servono i valori nodePort e dove li configuri per i cluster utente che utilizzano kubeception.

nodePort Configurazione
nodePort per il server API Kubernetes del cluster utente File di configurazione del cluster utente nel campo loadBalancer.manualLB.controlPlaneNodePort
nodePort per il server Konnectivity del cluster utente (il server Konnectivity utilizza il VIP del piano di controllo) File di configurazione del cluster utente nel campo loadBalancer.manualLB.konnectivityServerNodePort
HTTP nodePort per il servizio in entrata nel cluster utente File di configurazione del cluster utente in loadBalancer.manualLB.ingressHTTPNodePort
HTTPS nodePort per il servizio in entrata nel cluster utente File di configurazione del cluster utente in loadBalancer.manualLB.ingressHTTPSNodePort

File di configurazione del cluster di esempio

L'esempio seguente mostra una parte di un file di configurazione del cluster di amministrazione e del cluster utente:

Cluster di amministrazione ad alta disponibilità

  • Versione 1.16 e successive:

    network:
      controlPlaneIPBlock:
        netmask: "255.255.248.0"
        gateway: "21.0.143.254"
        ips:
        - ip: "21.0.140.226"
          hostname: "admin-cp-vm-1"
        - ip: "21.0.141.48"
          hostname: "admin-cp-vm-2"
        - ip: "21.0.141.65"
          hostname: "admin-cp-vm-3"
    loadBalancer:
      vips:
        controlPlaneVIP: "172.16.21.40"
      kind: ManualLB
    
  • La versione 1.15 e le versioni precedenti richiedono un VIP e nodeport per i nodi aggiuntivi.

    network:
      controlPlaneIPBlock:
        netmask: "255.255.248.0"
        gateway: "21.0.143.254"
        ips:
        - ip: "21.0.140.226"
          hostname: "admin-cp-vm-1"
        - ip: "21.0.141.48"
          hostname: "admin-cp-vm-2"
        - ip: "21.0.141.65"
          hostname: "admin-cp-vm-3"
    loadBalancer:
      vips:
        controlPlaneVIP: "172.16.21.40"
        addonsVIP: "203.0.113.4"
      kind: ManualLB
      manualLB:
        addonsNodePort: 31405
    

Cluster di amministrazione non ad alta disponibilità

  • Versione 1.16 e successive:

    network:
      ipMode:
        type: static
        ipBlockFilePath: "ipblock-admin.yaml"
    loadBalancer:
      vips:
        controlPlaneVIP: "172.16.21.40"
      kind: ManualLB
      manualLB:
        controlPlaneNodePort: 30562
    
  • La versione 1.15 e le versioni precedenti richiedono un VIP e nodeport per i nodi aggiuntivi.

    network:
    ipMode:
      type: static
      ipBlockFilePath: "ipblock-admin.yaml"
    loadBalancer:
    vips:
      controlPlaneVIP: "172.16.21.40"
      addonsVIP: "172.16.21.41"
    kind: ManualLB
    manualLB:
      controlPlaneNodePort: 30562
      addonsNodePort: 30563
    

Cluster utente CP V2

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879

Cluster utente Kubeception

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879
    konnectivityServerNodePort: 30563
    controlPlaneNodePort: 30562

Configura il bilanciatore del carico

Utilizza la console di gestione o gli strumenti del bilanciatore del carico per configurare le seguenti mappature nel bilanciatore del carico. Il modo in cui puoi farlo dipende dal tuo bilanciatore del carico.

Cluster di amministrazione ad alta disponibilità

Traffico verso i nodi del piano di controllo

Google Distributed Cloud gestisce automaticamente il bilanciamento del carico del traffico del piano di controllo per i cluster di amministrazione ad alta disponibilità. Anche se non è necessario configurare una mappatura nel bilanciatore del carico, devi specificare un indirizzo IP nel campo loadBalancer.vips.controlPlaneVIP.

Traffico verso i servizi nei nodi dei componenti aggiuntivi

1.15 e precedenti: di seguito viene mostrata la mappatura agli indirizzi IP e ai valori nodePort per il traffico ai servizi nei nodi dei componenti aggiuntivi:

  • (addonsVIP:8443) -> (NODE_IP_ADDRESSES:addonsNodePort)

Aggiungi questa mappatura per tutti i nodi nel cluster di amministrazione, sia per i nodi del piano di controllo sia per i nodi dei componenti aggiuntivi.

Dalla versione 1.16 in poi, non è necessario configurare questa mappatura per i nodi dei componenti aggiuntivi per i cluster di amministrazione ad alta disponibilità.

Cluster di amministrazione non ad alta disponibilità

Traffico del piano di controllo

Di seguito viene mostrata la mappatura all'indirizzo IP e al valore nodePort per il nodo del piano di controllo:

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)

Aggiungi questa mappatura per tutti i nodi nel cluster di amministrazione, sia per il nodo del piano di controllo sia per i nodi dei componenti aggiuntivi.

Traffico verso i servizi nei nodi dei componenti aggiuntivi

1.15 e precedenti: di seguito viene mostrata la mappatura agli indirizzi IP e ai valori nodePort per i servizi in esecuzione nei nodi dei componenti aggiuntivi:

  • (addonsVIP:8443) -> (NODE_IP_ADDRESSES:addonsNodePort)

Aggiungi questa mappatura per tutti i nodi nel cluster di amministrazione, sia per il nodo del piano di controllo sia per i nodi dei componenti aggiuntivi.

Dalla versione 1.16 in poi, non è necessario configurare questa mappatura per i nodi dei componenti aggiuntivi per i cluster di amministrazione non ad alta disponibilità.

Cluster utente CP V2

Traffico del piano di controllo

Google Distributed Cloud gestisce automaticamente il bilanciamento del carico del traffico del piano di controllo per i cluster utente con Controlplane V2 abilitato. Anche se non è necessario configurare una mappatura nel bilanciatore del carico, devi specificare un indirizzo IP nel campo loadBalancer.vips.controlPlaneVIP.

Traffico del piano dati

Di seguito viene mostrata la mappatura agli indirizzi IP e ai valori nodePort per il traffico del piano dati:

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

Aggiungi queste mappature per tutti i nodi nel cluster utente, sia i nodi del piano di controllo che i nodi worker. Poiché hai configurato NodePorts sul cluster, Kubernetes apre NodePorts su tutti i nodi del cluster. In questo modo qualsiasi nodo nel cluster può gestire il traffico del piano dati.

Dopo aver configurato le mappature, il bilanciatore del carico rimane in ascolto del traffico sull'indirizzo IP configurato per il VIP in entrata del cluster utente sulle porte HTTP e HTTPS standard. Il bilanciatore del carico instrada le richieste a qualsiasi nodo nel cluster. Dopo che una richiesta viene instradata a uno dei nodi del cluster, il networking Kubernetes interno prende il controllo e instrada la richiesta al pod di destinazione.

Cluster utente Kubeception

Traffico del piano di controllo

Di seguito viene mostrata la mappatura agli indirizzi IP e ai valori nodePort per il traffico del piano di controllo:

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)
  • (controlPlaneVIP:8132) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort)

Aggiungi questa mappatura per tutti i nodi nel cluster admin, sia per il cluster di amministrazione che per i nodi del piano di controllo del cluster utente.

Traffico del piano dati

Di seguito viene mostrata la mappatura agli indirizzi IP e ai valori nodePort per il traffico del piano dati:

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

Aggiungi queste mappature per tutti i nodi nel cluster utente. Nei cluster utente che utilizzano kubeception, tutti i nodi nel cluster sono nodi worker.

Oltre ai requisiti precedenti, ti consigliamo di configurare il bilanciatore del carico in modo da reimpostare le connessioni client quando rileva un errore del nodo di backend. Senza questa configurazione, i client del server API Kubernetes possono smettere di rispondere per diversi minuti quando un'istanza del server non è disponibile, causando instabilità nel piano di controllo Kubernetes.

  • Con F5 BIG-IP, questa impostazione è denominata Azione in caso di inattività del servizio nella pagina di configurazione del pool di backend.
  • Con HAProxy, questa impostazione viene chiamata sessione di chiusura "on-marked-down" (arresto segnato) nella configurazione del server di backend.
  • Se utilizzi un bilanciatore del carico diverso, consulta la documentazione per trovare l'impostazione equivalente.

Richiesta di assistenza per il bilanciamento del carico manuale

Google non fornisce assistenza per i bilanciatori del carico configurati utilizzando la modalità di bilanciamento del carico manuale. In caso di problemi con il bilanciatore del carico, contatta il relativo fornitore.

Passaggi successivi