Bilanciamento del carico in bundle con Seesaw

I cluster Anthos su VMware (GKE on-prem) possono essere eseguiti in una delle tre modalità di bilanciamento del carico: integrata, manuale o in bundle. Questo documento mostra come configurare i cluster Anthos su VMware in modo che vengano eseguiti in modalità di bilanciamento del carico.

Il bilanciatore del carico in bundle fornito da Cluster Anthos su VMware è il bilanciatore del carico di Seesaw.

Le istruzioni riportate qui sono complete. Per un'introduzione più breve all'utilizzo del bilanciatore del carico di Seesaw, consulta l'articolo sulla guida rapida del bilanciatore del carico di Seesaw.

In modalità di bilanciamento del carico in bundle, i cluster Anthos su VMware forniscono e gestiscono il bilanciatore del carico. Non è necessario ottenere una licenza per un bilanciatore del carico e la quantità di configurazione che devi fare è minima.

Questo documento mostra come configurare il bilanciamento del carico in bundle per un cluster di amministrazione e un cluster utente associato.

Vantaggi della modalità di bilanciamento del carico

La modalità di bilanciamento del carico in bundle offre questi vantaggi rispetto alla modalità di bilanciamento del carico manuale:

  • Un singolo team può essere responsabile sia della creazione del cluster che della configurazione del bilanciatore del carico. Ad esempio, un team di amministrazione del cluster non dovrebbe fare affidamento su un team di networking separato per acquisire, eseguire e configurare il bilanciatore del carico in anticipo.

  • I cluster Anthos su VMware configurano automaticamente gli indirizzi IP virtuali (VIP) sul bilanciatore del carico. Al momento della creazione del cluster, Cluster Anthos su VMware configura il bilanciatore del carico con VIP per il server API di Kubernetes, il servizio in entrata e i componenti aggiuntivi del cluster. Quando i clienti creano servizi di tipo LoadBalancer, i cluster Anthos su VMware configurano automaticamente i VIP di servizio sul bilanciatore del carico.

  • Le dipendenze tra organizzazioni, gruppi e amministratori sono ridotte. In particolare, il gruppo che gestisce un cluster dipende meno da quello che gestisce la rete,

Ti consigliamo vivamente di utilizzare vSphere 6.7 o versioni successive e lo Virtual Distributed Switch (VDS) 6.6 o versioni successive per la modalità di bilanciamento del carico in bundle.

Se preferisci, puoi utilizzare le versioni precedenti, ma l'installazione sarà meno sicura. Le sezioni rimanenti di questo argomento forniscono ulteriori dettagli sui vantaggi in termini di sicurezza dell'utilizzo di vSphere 6.7 e VDS 6.6 e versioni successive.

Protocollo di ridondanza del router virtuale

Puoi eseguire il bilanciatore del carico di Seesaw su una singola VM oppure puoi eseguire il bilanciatore del carico in modalità ad alta disponibilità, che utilizza due VM. In modalità ad alta disponibilità, il bilanciatore del carico di Seesaw utilizza il protocollo di ridondanza del router virtuale (VRRP). Le due VM sono chiamate master e backup. A ogni VM di Seesaw viene assegnato un identificatore del router virtuale (VRID) a tua scelta.

Pianifica le tue VLAN

In questo esercizio creerai un cluster di amministrazione e un cluster utente. Con la modalità di bilanciamento del carico in bundle, consigliamo vivamente di avere i cluster su VLAN separate.

Se il cluster di amministrazione ha la propria VLAN, il traffico del piano di controllo è separato da quello del piano dati. Questa separazione protegge il cluster di amministrazione e i piani di controllo del cluster utente da errori di configurazione involontaria. Tali errori possono portare, ad esempio, a problemi come una tempesta di trasmissione dovuta a loop di livello 2 nella stessa VLAN o a un indirizzo IP in conflitto che elimina la separazione desiderata tra il piano dati e il piano di controllo.

Esegui il provisioning delle risorse VM

Per le VM che eseguono il bilanciatore del carico di Seesaw, esegui il provisioning delle risorse di CPU e memoria in base al traffico di rete che prevedi di riscontrare.

Il bilanciatore del carico di Seesaw non richiede un utilizzo intensivo della memoria e può essere eseguito in VM con 1 GB di memoria. Tuttavia, il requisito della CPU aumenta con l'aumentare della frequenza del pacchetto di rete.

La tabella seguente mostra le linee guida relative a spazio di archiviazione, CPU e memoria per il provisioning delle VM di Seesaw. Poiché la frequenza dei pacchetti non è una misurazione tipica delle prestazioni di rete, la tabella mostra anche le linee guida per il numero massimo di connessioni di rete attive. Le linee guida presuppongono un ambiente in cui le VM abbiano un link da 10 Gbps e le CPU abbiano una capacità di esecuzione inferiore al 70%.

Quando il bilanciatore del carico di Seesaw viene eseguito in modalità ad alta disponibilità, utilizza una coppia (principale, di backup), quindi tutto il traffico passa attraverso una singola VM.

Poiché i casi d'uso effettivi variano, queste linee guida devono essere modificate in base al traffico effettivo. Monitora le metriche di CPU e frequenza pacchetti per determinare le modifiche necessarie.

Se devi modificare CPU e memoria per le tue VM di Seesaw, consulta L'upgrade di un bilanciatore del carico. Tieni presente che puoi mantenere la stessa versione del bilanciatore del carico e modificare il numero di CPU e l'allocazione della memoria.

Per i cluster di amministrazione di piccole dimensioni, consigliamo 2 CPU e per i cluster di amministrazione di grandi dimensioni.

Archiviazione CPU Memoria Velocità pacchetti (pps) Numero massimo di connessioni attive
20 GB 1 (non di produzione) 1 GB 250.000 100
20 GB 2 3 GB 450.000 300
20 GB 4 3 GB 850.000 6000
20 GB 6 3 GB 1000.000 10.000

Metti da parte gli indirizzi IP virtuali

Indipendentemente dalla scelta della modalità di bilanciamento del carico, devi mettere da parte diversi indirizzi IP virtuali (VIP) che intendi utilizzare per il bilanciamento del carico. Questi VIP consentono ai client esterni di raggiungere i server API, i servizi in entrata e i servizi aggiuntivi di Kubernetes.

VIP cluster di amministrazione

Metti da parte un VIP per il server API Kubernetes del cluster di amministrazione. Nel file di configurazione del cluster di amministrazione, questo è denominato controlPlaneVIP. Questo VIP deve trovarsi sulla stessa VLAN dei nodi del cluster di amministrazione e delle VM di Seesaw per il cluster di amministrazione.

Metti da parte un VIP per i componenti aggiuntivi nel cluster di amministrazione. Nel file di configurazione del cluster di amministrazione, questo è denominato addonsVIP. Questo VIP deve trovarsi sulla stessa VLAN dei nodi del cluster di amministrazione e delle VM di Seesaw per il cluster di amministrazione.

VIP per cluster utente

Metti da parte un VIP per il server API di Kubernetes del tuo cluster utente. Nel file di configurazione del cluster utente, questo è denominato controlPlaneVIP. Questo VIP deve trovarsi sulla stessa VLAN dei nodi del cluster di amministrazione e delle VM di Seesaw per il cluster di amministrazione. perché il server API Kubernetes per il cluster utente viene eseguito su un nodo nel cluster di amministrazione.

Metti da parte un VIP per il traffico in entrata nel tuo cluster utente. Nel file di configurazione del cluster utente, questo è denominato ingressVIP. Questo VIP deve trovarsi sulla stessa VLAN dei nodi del cluster utente e delle VM di Seesaw per il cluster utente.

Metti da parte gli indirizzi IP dei nodi

Con la modalità di bilanciamento del carico in bundle, puoi specificare indirizzi IP statici per i nodi del cluster, oppure i nodi del cluster possono recuperare i propri indirizzi IP da un server DHCP.

Se vuoi che i nodi del tuo cluster abbiano indirizzi IP statici, metti da parte gli indirizzi sufficienti per i nodi nel cluster di amministrazione e i nodi in tutti i cluster utente che intendi creare. Per maggiori dettagli sul numero di indirizzi IP dei nodi da descrivere, consulta la sezione Creazione di un cluster di amministrazione.

Metti da parte gli indirizzi IP per le VM di Seesaw

Quindi, metti da parte gli indirizzi IP per le VM che eseguiranno i bilanciatori del carico di Seesaw.

Il numero di indirizzi messi da parte varia a seconda che tu voglia creare bilanciatori del carico di Seesaw ad alta disponibilità o bilanciatori del carico di Seesaw non ad alta disponibilità.

Caso 1: bilanciatori del carico ad alta disponibilità

Per il tuo cluster di amministrazione, metti da parte due indirizzi IP per una coppia di VM di Seesaw. Anche per il cluster di amministrazione, riserva un singolo indirizzo IP master per la coppia di VM di Seesaw. Tutti e tre questi indirizzi devono trovarsi sulla stessa VLAN dei tuoi nodi del cluster di amministrazione.

Per il tuo cluster utente, metti da parte due indirizzi IP per una coppia di VM di Seesaw. Inoltre, metti da parte un singolo indirizzo IP master per la coppia di VM di Seesaw. Tutti e tre questi indirizzi devono trovarsi sulla stessa VLAN dei nodi del cluster utente.

Caso 2: bilanciatori del carico Seesaw non ad alta disponibilità

Per il tuo cluster di amministrazione, riserva un indirizzo IP per una VM di Seesaw. Anche per il cluster di amministrazione, metti da parte un indirizzo IP master per il bilanciatore del carico di Seesaw. Entrambi gli indirizzi devono trovarsi sulla stessa VLAN dei tuoi nodi cluster di amministrazione.

Per il tuo cluster utente, metti da parte un solo indirizzo IP per una VM di Seesaw. Metti anche da parte un indirizzo IP master per il bilanciatore del carico di Seesaw. Entrambi gli indirizzi devono trovarsi sulla stessa VLAN dei nodi del cluster utente.

Pianificare i gruppi di porte

Ogni tua VM di Seesaw ha due interfacce di rete. Per una VM di Seesaw master, una di queste interfacce di rete è configurata con VIP e l'altra interfaccia di rete viene configurata con un indirizzo IP recuperato da un file di blocco IP fornito da te. Per una VM di Seesaw di backup, viene configurata un'interfaccia con un indirizzo IP recuperato dal file del blocco IP e nessuna configurazione viene configurata sull'altra interfaccia di rete.

Per una singola VM di Seesaw, le due interfacce di rete possono essere collegate allo stesso gruppo di porte vSphere oppure possono essere collegate a gruppi di porte separati. Se i gruppi di porte sono separati, devono trovarsi sulla stessa VLAN.

Questo argomento si riferisce a due gruppi di porte:

  • gruppo di porte con bilanciamento del carico: per una VM di Seesaw, l'interfaccia di rete configurata con i VIP è connessa al gruppo di porte.

  • Gruppo di porte nodo di cluster: per una VM di Seesaw, l'interfaccia di rete configurata con un indirizzo IP ricavato dal file del blocco IP è collegata a questo gruppo di porte. Anche i nodi del cluster sono connessi a questo gruppo di porte.

Il gruppo di porte del bilanciatore del carico e quello dei nodi del cluster possono essere uguali. Tuttavia, consigliamo vivamente di separarle.

Il seguente diagramma illustra la configurazione di rete consigliata per il bilanciamento del carico di Seesaw:

Diagramma che mostra la rete per il bilanciatore del carico di Seesaw Vedi le VM e i nodi del cluster su una VLAN

Il diagramma precedente rappresenta un singolo cluster, ovvero un cluster di amministrazione o un cluster utente. Ti ricordiamo che consigliamo di fare in modo che ogni cluster sia collegato alla propria VLAN.

Nel diagramma, puoi vedere le seguenti caratteristiche della rete:

  • Sono inoltre presenti due VM di Seesaw, una principale e una di backup.

  • Le VM di Seesaw si trovano sulla stessa VLAN dei nodi del cluster.

  • La VM di backup di Seesaw ha due interfacce di rete. Un'interfaccia è configurata con un indirizzo IP recuperato dal file di blocco IP di Seesaw. L'altra interfaccia non è configurata con alcun indirizzo IP.

  • La VM master di Seesaw ha due interfacce di rete. Un'interfaccia è configurata con un indirizzo IP recuperato dal file di blocco IP di Seesaw. L'altra interfaccia è configurata con i VIP.

  • Ogni VM di Seesaw ha un'interfaccia di rete connessa al gruppo di porte del bilanciatore del carico. Tutte le altre interfacce di rete nel diagramma sono collegate al gruppo di porte del nodo del cluster.

Tutti gli indirizzi IP, inclusi i VIP, configurati sulle interfacce di rete mostrati nel diagramma devono essere instradabili alla VLAN.

Per un cluster di amministrazione, l'interfaccia VIP sulla VM master di Seesaw è configurata con i seguenti indirizzi IP:

  • Il VIP per la VM Seesaw master del cluster di amministrazione
  • Il componente aggiuntivo del cluster di amministrazione VIP
  • Il VIP del piano di controllo per il cluster di amministrazione
  • Il VIP del piano di controllo per il cluster utente
  • VIP per i servizi di tipo LoadBalancer in esecuzione nel cluster di amministrazione

Per un cluster utente, l'interfaccia VIP nella VM master di Seesaw è configurata con i seguenti indirizzi IP:

  • Il VIP per la VM Seesaw master del cluster utente
  • Il VIP Ingress in cluster utente
  • VIP per i servizi di tipo LoadBalancer in esecuzione nel cluster utente

Creare i file di blocco IP

Per ogni cluster, amministratore e utente, specifica gli indirizzi che hai scelto per le tue VM di Seesaw in un file di blocco IP. Questo file di blocco IP è destinato alle VM del bilanciatore del carico, non ai nodi del cluster. Se intendi utilizzare indirizzi IP statici per i nodi del cluster, devi creare un file di blocco IP separato per tali indirizzi. Di seguito è riportato un esempio di file di blocco IP che specifica due indirizzi IP per le VM di Seesaw:

blocks:
  - netmask: "255.255.255.0"
    gateway: "172.16.20.1"
    ips:
    - ip: "172.16.20.18"
      hostname: "seesaw-vm-1"
    - ip: "172.16.20.19"
      hostname: "seesaw-vm-2"

Compilare i file di configurazione

Prepara un file di configurazione per il cluster amministratore e un altro file di configurazione per il cluster utente.

Nel file di configurazione di un determinato cluster, imposta loadBalancer.kind su "Seesaw".

In loadBalancer, compila la sezione seesaw:

loadBalancer:
  kind: Seesaw
  seesaw:
    ipBlockFilePath:
    vrid:
    masterIP:
    cpus:
    memoryMB:
    vCenter:
      networkName:
    enableHA:
    disableVRRPMAC:

Per informazioni su come compilare la sezione seesaw di un file di configurazione del cluster, loadbalancer.seesaw (admin cluster) o loadbalancer.seesaw (user cluster)

Attivare l'apprendimento MAC o la modalità promiscua (solo HA)

Se stai configurando un bilanciatore del carico di Seesaw non ad alta disponibilità, puoi saltare questa sezione.

Se hai impostato loadBalancer.seesaw.disableVRRPMAC su true, puoi saltare questa sezione.

Se configuri un bilanciatore del carico di Seesaw ad alta disponibilità e hai impostato loadBalancer.seesaw.disableVRRPMAC su false, devi abilitare una combinazione di apprendimento MAC, trasmissioni contraffatte e modalità profonda per il gruppo di porte del bilanciatore del carico.

Il modo in cui attivi queste funzionalità varia in base al tipo di sensore che possiedi:

Tipo di switchAttivazione delle funzionalità in corso...Impatto sulla sicurezza
vSphere 7.0 VDS Per vSphere 7.0 con alta disponibilità, devi impostare loadBalancer.seesaw.disableVRRPMAC su true. Il machine learning non è supportato.
vSphere 6.7 con VDS 6.6

Abilita l'apprendimento MAC e le trasmissioni contraffatte per il bilanciatore del carico eseguendo questo comando: gkectl prepare network --config [CONFIG_FILE], dove [CONFIG_FILE] è il percorso del file di configurazione del cluster. Per eseguire questa operazione, devi disporre dell'autorizzazione dvPort group.Modify.

Minima. Se il gruppo di porte del bilanciatore del carico è collegato solo alle VM di Seesaw, puoi limitare l'apprendimento MAC alle VM di Seesaw attendibili.

vSphere 6.5 o

vSphere 6.7 con una versione di VDS precedente a 6.6

Abilita la modalità promiscua e le trasmissioni contraffatte per il tuo gruppo di porte del bilanciatore del carico. Utilizza l'interfaccia utente vSphere nella pagina del gruppo di porte nella scheda Networking: Edit Settings -> Security. Tutte le VM sul gruppo di porte del bilanciatore del carico sono in modalità promiscua. Quindi qualsiasi VM sul tuo gruppo di porte del bilanciatore del carico può visualizzare tutto il traffico. Se il gruppo di porte del bilanciatore del carico è collegato solo alle VM di Seesaw, solo quelle possono visualizzare tutto il traffico.
Interruttore logico NSX-T Attiva l'apprendimento MAC sul sensore logico. vSphere non supporta la creazione di due sensori logici nello stesso dominio di livello 2. Pertanto, le VM di Seesaw e i nodi del cluster devono essere sullo stesso switch logico. Ciò significa che il machine learning è abilitato per tutti i nodi del cluster. Un utente malintenzionato potrebbe ottenere uno spoofing MAC eseguendo pod con privilegi nel cluster.
Switch standard vSphere Abilita la modalità promiscua e le trasmissioni contraffatte per il tuo gruppo di porte del bilanciatore del carico. Utilizza l'interfaccia utente vSphere su ogni host ESXI: Configure -> Virtual switch -> Standard Switch -> Edit Settings on the port group -> Security. Tutte le VM sul gruppo di porte del bilanciatore del carico sono in modalità promiscua. Quindi qualsiasi VM sul tuo gruppo di porte del bilanciatore del carico può visualizzare tutto il traffico. Se il gruppo di porte del bilanciatore del carico è collegato solo alle VM di Seesaw, solo quelle possono visualizzare tutto il traffico.

Completa la compilazione del file di configurazione del cluster di amministrazione

Segui le istruzioni riportate in Creare un cluster di amministrazione per completare la compilazione del file di configurazione del cluster di amministrazione.

Esecuzione di controlli preliminari

Esegui controlli preliminari sul file di configurazione del cluster di amministrazione:

gkectl check-config --config ADMIN_CLUSTER_CONFIG

Sostituisci ADMIN_CLUSTER_CONFIG con il percorso del file di configurazione del cluster di amministrazione.

Carica immagini di sistema operativo

Carica le immagini del sistema operativo nel tuo ambiente vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

Crea un bilanciatore del carico per il cluster di amministrazione

gkectl create loadbalancer --config [ADMIN_CLUSTER_CONFIG]

Crea il cluster di amministrazione

Per creare il cluster di amministrazione, segui le istruzioni riportate in Creare un cluster di amministrazione.

Completa la compilazione dei file di configurazione del cluster utente

Segui le istruzioni riportate in Creare un cluster utente per completare la compilazione del file di configurazione del cluster utente.

Esecuzione di controlli preliminari

Esegui controlli preliminari sul file di configurazione del cluster utente:

gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Sostituisci quanto segue:

  • ADMIN_CLUSTERE_KUBECONFIG: percorso del file del cluster di amministrazione kubeconfig

  • USER_CLUSTER_CONFIG: percorso del file di configurazione del cluster utente

Carica immagini di sistema operativo

Carica le immagini del sistema operativo nel tuo ambiente vSphere:

gkectl prepare --config USER_CLUSTER_CONFIG

Crea un bilanciatore del carico per il cluster utente

Crea un bilanciatore del carico per il cluster utente:

gkectl create loadbalancer --config USER_CLUSTER_CONFIG

Crea il tuo cluster utente

Segui le istruzioni in Creazione di un cluster utente per creare il cluster.

Test delle prestazioni e del carico

La velocità effettiva di download della tua applicazione scala in modo lineare con il numero di backend. Questo perché i backend inviano risposte direttamente ai client, bypassando il bilanciatore del carico, tramite il ritorno diretto del server.

La velocità effettiva di caricamento dell'applicazione, invece, è limitata dalla capacità della VM di Seesaw che esegue il bilanciamento del carico.

Le applicazioni variano in base alla quantità di CPU e memoria richieste, quindi è fondamentale eseguire un test di carico prima di iniziare a gestire un numero elevato di client.

I test indicano che una singola VM di Seesaw con 6 CPU e 3 GB di memoria può gestire 10 GB/s (tariffa di rete) durante il caricamento del traffico con 10.000 connessioni TCP simultanee. Tuttavia, è importante eseguire un test di carico personalizzato se si prevede di supportare un numero elevato di connessioni TCP simultanee.

Limiti di scalabilità

Grazie al bilanciamento del carico in bundle, i limiti alla scalabilità del cluster possono essere limitati. Esiste un limite al numero di nodi nel cluster e al numero di servizi che possono essere configurati sul bilanciatore del carico. Esiste anche un limite ai controlli di integrità. Il numero di controlli di integrità dipende dal numero di nodi e dal numero di servizi.

A partire dalla versione 1.3.1, il numero dei controlli di integrità dipende dal numero di nodi e dal traffico dei servizi locali. Un servizio locale sul traffico è un servizio con l'opzione externalTrafficPolicy impostata su "Local".

Versione 1.3.0Versione 1.3.1 e successive
Servizi max (S)100500
Numero massimo di nodi (N)100100
Numero massimo controlli di integrità S * N <= 10.000N + L * N <= 10.000, dove L è il numero di servizi locali di traffico

Esempio: nella versione 1.3.1, supponiamo che tu abbia 100 nodi e 99 traffico di Servizi locali. Il numero dei controlli di integrità è quindi 100 + 99 * 100 = 10.000, che rientra nel limite di 10.000.

Esegui l'upgrade del bilanciatore del carico per un cluster

Quando esegui l'upgrade di un cluster, viene eseguito automaticamente l'upgrade del bilanciatore del carico. Non è necessario eseguire un comando separato per eseguire l'upgrade del bilanciatore del carico.

Se vuoi, puoi aggiornare le CPU o la memoria delle VM di Seesaw senza eseguire un upgrade completo. Innanzitutto, modifica i valori cpus e memoryMB nel file di configurazione del cluster. Ad esempio:

apiVersion: v1
bundlePath:
loadBalancer:
  kind: Seesaw
  seesaw:
    cpus: 3
    memoryMB: 3072

Quindi, per aggiornare il bilanciatore del carico per un cluster di amministrazione:

gkectl upgrade loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config ADMIN_CLUSTER_CONFIG --admin-cluster
Per aggiornare il bilanciatore del carico per un cluster utente:
gkectl upgrade loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG

Sostituisci quanto segue:

  • ADMIN_CLUSTER_KUBECONFIG: percorso del file kubeconfig del cluster di amministrazione

  • ADMIN_CLUSTER_CONFIG: percorso del file di configurazione del cluster di amministrazione

  • USER_CLUSTER_CONFIG: percorso del file di configurazione del cluster utente

Visualizza log Seesaw

Il bilanciatore del carico associato a Seesaw archivia i file di log nelle VM di Seesaw in /var/log/seesaw/. Il file di log più importante è seesaw_engine.INFO.

A partire dalla versione 1.6, se Stackdriver è abilitato, i log vengono caricati anche su Cloud. Puoi visualizzarle nella risorsa "anthos_l4lb&quot". Per disabilitare il caricamento dei log, puoi connetterti a SSH per connetterti alla VM ed eseguire:

sudo systemctl disable --now docker.fluent-bit.service

Visualizza le informazioni sulle VM di Seesaw

Puoi trovare informazioni sulle VM di Seesaw per un cluster nella risorsa personalizzata SeesawGroup.

Visualizza la risorsa personalizzata SeesawGroup per un cluster:

kubectl --kubeconfig CLUSTER_KUBECONFIG get seesawgroups -n kube-system -o yaml

Sostituisci CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster.

L'output ha un campo isReady che mostra se le VM sono pronte a gestire il traffico. L'output mostra anche i nomi e gli indirizzi IP delle VM di Seesaw e quale VM è la VM principale:

apiVersion: seesaw.gke.io/v1alpha1
kind: SeesawGroup
metadata:
  ...
  name: seesaw-for-cluster-1
  namespace: kube-system
  ...
spec: {}
status:
  machines:
  - hostname: cluster-1-seesaw-1
    ip: 172.16.20.18
    isReady: true
    lastCheckTime: "2020-02-25T00:47:37Z"
    role: Master
  - hostname: cluster-1-seesaw-2
    ip: 172.16.20.19
    isReady: true
    lastCheckTime: "2020-02-25T00:47:37Z"
    role: Backup

Visualizza metriche Seesaw

Il bilanciatore del carico associato a Seesaw fornisce le seguenti metriche:

  • Velocità effettiva per servizio o nodo
  • Velocità pacchetti per servizio o nodo
  • Connessioni attive per servizio o nodo
  • Utilizzo CPU e memoria
  • Numero di pod di backend integri per servizio
  • Quale VM è la principale e qual è il backup
  • Tempo di attività

A partire dalla versione 1.6, queste metriche vengono caricate in Cloud con Stackdriver. Puoi visualizzarli nella risorsa di monitoraggio di "anthos_l4lb".

Puoi anche utilizzare soluzioni di monitoraggio e dashboard a tua scelta, purché supporti il formato Prometheus.

Elimina un bilanciatore del carico

Se elimini un cluster che utilizza il bilanciamento del carico in bundle, devi eliminare le VM di Seesaw per tale cluster. Puoi farlo eliminando le VM di Seesaw nell'interfaccia utente di vSphere.

In alternativa, puoi eseguire gkectl delete loadbalancer.

Per un cluster di amministrazione:

gkectl delete loadbalancer --config ADMIN_CLUSTER_CONFIG --seesaw-group-file GROUP_FILE

Per un cluster utente:

gkectl delete loadbalancer  --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG \
    --seesaw-group-file GROUP_FILE

Sostituisci quanto segue:

  • ADMIN_CLUSTER_CONFIG: percorso del file di configurazione del cluster di amministrazione

  • USER_CLUSTER_CONFIG: percorso del file di configurazione del cluster utente

  • ADMIN_CLUSTER_KUBECONFIG: percorso del file kubeconfig del cluster di amministrazione

  • GROUP_FILE: percorso del file del gruppo di Seesaw. Il nome del file del gruppo ha questo modulo
    seesaw-for-CLUSTER_NAME-IDENTIFIER.yaml.
    Ad esempio: seesaw-for-gke-admin-12345.yaml.

Risolvere i problemi

Ottenere una connessione SSH a una VM di Seesaw

Occasionalmente potresti voler connetterti a una VM di Seesaw tramite SSH per risolvere i problemi o eseguire il debug.

Ottieni la chiave SSH

Se hai già creato il cluster, segui questi passaggi per ottenere la chiave SSH:

  1. Recupera il secret di seesaw-ssh dal cluster. Recupera la chiave SSH dal Secret e dalla codifica base64. Salva la chiave decodificata in un file temporaneo:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get -n  kube-system secret seesaw-ssh -o \
    jsonpath='{@.data.seesaw_ssh}' | base64 -d | base64 -d > /tmp/seesaw-ssh-key
    

    Sostituisci CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster.

  2. Imposta le autorizzazioni appropriate per il file della chiave:

    chmod 0600 /tmp/seesaw-ssh-key

Se non hai ancora creato il cluster, segui questi passaggi per ottenere la chiave SSH:

  1. Individua il file denominato seesaw-for-CLUSTER_NAME-IDENTIFIER.yaml.

    Il file è denominato file di gruppo e si trova accanto a config.yaml.

    gkectl create loadbalancer stampa anche la posizione del file del gruppo.

  2. Nel file, recupera il valore credentials.ssh.privateKey e decodificalo in base64. Salva la chiave decodificata in un file temporaneo:

    cat seesaw-for-CLUSTER_NAME-IDENTIFIER.yaml  | grep privatekey | sed 's/    privatekey: //g' \
    | base64 -d > /tmp/seesaw-ssh-key
    
  3. Imposta le autorizzazioni appropriate per il file della chiave:

    chmod 0600 /tmp/seesaw-ssh-key
    

Ora puoi connetterti tramite SSH alla VM Seesaw:

ssh -i /tmp/seesaw-ssh-key ubuntu@SEESAW_IP

Sostituisci SEESAW_IP con l'indirizzo IP della VM di Seesaw.

Ricevi snapshot

Puoi acquisire snapshot per le VM di Seesaw utilizzando il comando gkectl diagnose snapshot insieme al flag --scenario.

Se imposti --scenario su all o all-with-logs, l'output include le istantanee di Seesaw insieme ad altri snapshot.

Se imposti --scenario su seesaw, l'output include solo gli snapshot Seesaw.

Esempi:

gkectl diagnose snapshot --kubeconfig ADMIN_CLUSTER_KUBECONFIG --scenario seesaw

gkectl diagnose snapshot --kubeconfig ADMIN_CLUSTER_KUBECONFIG --cluster-name CLUSTER_NAME --scenario seesaw

gkectl diagnose snapshot --seesaw-group-file GROUP_FILE --scenario seesaw

Sostituisci quanto segue:

  • ADMIN_CLUSTER_KUBECONFIG: percorso del file kubeconfig del cluster di amministrazione

  • GROUP_FILE: il percorso del file di gruppo del cluster.

Problemi noti

Cisco ACI non funziona con il server DSR

Seesaw viene eseguito in modalità DSR e per impostazione predefinita non funziona in Cisco ACI a causa dell'apprendimento IP del piano dati. Puoi trovare una possibile soluzione alternativa utilizzando il gruppo di endpoint dell'applicazione qui.

L'upgrade del bilanciatore del carico di Seesaw non funziona in alcuni casi

Se tenti di eseguire l'upgrade di un cluster dalla versione 1.8.0 o utilizzi gkectl upgrade loadbalancer per aggiornare alcuni parametri del bilanciatore del carico di Seesaw alla versione 1.8.0, questa operazione non funzionerà in modalità DHCP o IPAM. Prima di eseguire l'upgrade, attendi una correzione annunciata in una versione futura.