Bilanciamento del carico in bundle con Seesaw

10

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 per eseguire il bilanciatore del carico di Seesaw in modalità bundle.

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

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

Questo documento mostra come configurare il bilanciatore del carico di Seesaw per un cluster di amministrazione e un cluster utente associato. Puoi eseguire il bilanciatore del carico di Seesaw su una singola VM o eseguire il bilanciatore del carico in modalità ad alta disponibilità (HA), 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 il backup. A ogni VM di Seesaw viene assegnato un identificatore del router virtuale (VRID) di tua scelta.

Esempio di configurazione di Seesaw

Ecco un esempio di configurazione per i cluster che eseguono il bilanciatore del carico di Seesaw in modalità ad alta disponibilità:

Controlla la configurazione del bilanciatore del carico in modalità ad alta disponibilità.
Vedi la configurazione del bilanciatore del carico in modalità ad alta disponibilità (fai clic per ingrandire)

Il diagramma precedente mostra due VM di Seesaw ciascuna per il cluster di amministrazione e il cluster utente. In questo esempio, il cluster di amministrazione e il cluster utente si trovano su due VLAN separate e ogni cluster si trova in una subnet separata:

Cluster Subnet
Cluster di amministrazione 172.16.20.0/24
Cluster utente 172.16.40.0/24

admin-cluster.yaml

L'esempio seguente di un file di configurazione del cluster di amministrazione mostra la configurazione vista nel diagramma precedente di:

  • L'indirizzo IP master per la coppia di VM di Seesaw che gestiscono il cluster di amministrazione.

  • VIP designati per il server API e i componenti aggiuntivi di Kubernetes del cluster di amministrazione.

network:
  hostConfig:
  ...

  ipMode:
    type: "static"
    ipBlockFilePath: "config-folder/admin-cluster-ipblock.yaml"
...

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/admin-seesaw-ipblock.yaml"
    masterIP: 172.16.20.57
  ...

  vips:
    controlPlaneVIP: "172.16.20.70"
    addonsVIP: "172.16.20.71"

admin-cluster-ipblock.yaml

Nell'esempio seguente il file di un blocco IP mostra la designazione degli indirizzi IP per i nodi nel cluster di amministrazione. Include anche l'indirizzo del nodo del piano di controllo del cluster utente e un indirizzo IP da utilizzare durante l'upgrade del cluster.

blocks:
- netmask: "255.255.255.0"
  gateway: "17.16.20.1"
  ips:
  - ip: 172.16.20.50
    hostname: admin-vm-1
  - ip: 172.16.20.51
    hostname: admin-vm-2
  - ip: 172.16.20.52
    hostname: admin-vm-3
  - ip: 172.16.20.53
    hostname: admin-vm-4
  - ip: 172.16.20.54
    hostname: admin-vm-5

admin-seesaw-ipblock.yaml

L'esempio seguente di un altro file di blocco IP specifica due indirizzi IP per le VM di Seesaw che gestiscono il cluster di amministrazione. Tieni presente che questo è un file di blocco IP separato per le VM del bilanciatore del carico, non dei nodi del cluster.

blocks:
  - netmask: "255.255.255.0"
    gateway: "172.16.20.1"
    ips:
    - ip: "172.16.20.60"
      hostname: "admin-seesaw-vm-1"
    - ip: "172.16.20.61"
      hostname: "admin-seesaw-vm-2"

user-cluster.yaml

L'esempio seguente di un file di configurazione del cluster utente mostra la configurazione di:

  • L'indirizzo IP master per la coppia di VM di Seesaw che gestiscono il cluster utente.

  • VIP designati per il server API e il servizio in entrata di Kubernetes nel cluster utente. Il VIP del server API Kubernetes si trova nella subnet del cluster di amministrazione perché il piano di controllo per un cluster utente viene eseguito su un nodo nel cluster di amministrazione.

network:
  hostConfig:
  ...

  ipMode:
    type: "static"
    ipBlockFilePath: "config-folder/user-cluster-ipblock.yaml"
...

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
    masterIP: 172.16.40.31
  ...

  vips:
    controlPlaneVIP: "172.16.20.72"
    ingressVIP: "172.16.40.100"

user-cluster-ipblock.yaml

Il seguente esempio di file di blocco IP mostra la designazione degli indirizzi IP per i nodi nel cluster utente. Include un indirizzo IP da utilizzare durante l'upgrade del cluster.

blocks:
- netmask: "255.255.255.0"
  gateway: "17.16.40.1"
  ips:
  - ip: 172.16.40.21
    hostname: user-vm-1
  - ip: 172.16.40.22
    hostname: user-vm-2
  - ip: 172.16.40.23
    hostname: user-vm-3
  - ip: 172.16.40.24
    hostname: user-vm-4
  - ip: 172.16.40.25
    hostname: user-vm-5

user-seesaw-ipblock.yaml

L'esempio seguente di un altro file di blocco IP specifica due indirizzi IP per le VM di Seesaw che gestiscono il cluster utente.

blocks:
  - netmask: "255.255.255.0"
    gateway: "172.16.40.1"
    ips:
    - ip: "172.16.40.29"
      hostname: "user-seesaw-vm-1"
    - ip: "172.16.40.30"
      hostname: "user-seesaw-vm-2"

Gruppi di porte

La tabella seguente descrive la configurazione delle interfacce di rete per ciascuna delle VM di Seesaw e i relativi gruppi di porte collegate, come mostrato nel diagramma precedente.

VM di Seesaw Interfaccia di rete Configurazione dell'interfaccia di rete Gruppo di porte connesse
Master interfaccia-di-rete-1 VIP bilanciatore del carico
interfaccia-di-rete-2 Indirizzo IP estratto dal file di blocco IP per le VM di Seesaw nodo cluster
Backup interfaccia-di-rete-1 Nessuna configurazione bilanciatore del carico
interfaccia-di-rete-2 Indirizzo IP estratto dal file di blocco IP per le VM di Seesaw nodo cluster

I nodi del cluster sono connessi anche al gruppo di porte del nodo cluster.

Come mostra la tabella precedente, ciascuna delle VM di Seesaw per i cluster di amministrazione e degli utenti ha due interfacce di rete. Per ogni VM di Seesaw, le due interfacce di rete sono collegate a due gruppi di porte separati:

  • gruppo di porte del bilanciatore del carico

  • gruppo di porte del nodo cluster

I due gruppi di porte per un cluster utilizzano la stessa VLAN per il cluster.

Configura il bilanciatore del carico di Seesaw

Il diagramma precedente mostra la configurazione di rete consigliata per il bilanciamento del carico di Seesaw. Quando pianifichi la tua configurazione, ti consigliamo vivamente di utilizzare vSphere 6.7 o versioni successive e 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 in questo argomento forniscono maggiori dettagli sui vantaggi della sicurezza associati all'utilizzo di vSphere 6.7+ e VDS 6.6+.

Pianifica le tue VLAN

Con la modalità di bilanciamento del carico in bundle, ti consigliamo vivamente di avere i cluster su VLAN separate.

Se il cluster di amministrazione si trova su una propria VLAN, il traffico del piano di controllo è separato dal traffico del piano dati. Questa separazione protegge il cluster di amministrazione e i piani di controllo del cluster utente da errori di configurazione involontari. 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.

Eseguire 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 incontrare.

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

La tabella seguente mostra le linee guida relative allo spazio di archiviazione, alla CPU e alla 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 hanno un link a 10 Gbps e le CPU vengono eseguite con una capacità inferiore al 70%.

Quando il bilanciatore del carico di Seesaw viene eseguito in modalità ad alta disponibilità, utilizza una coppia (master, di backup), in modo che tutto il traffico passi 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 hai bisogno di modificare CPU e memoria per le VM di Seesaw, consulta la pagina 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, mentre per i cluster di amministrazione di grandi dimensioni consigliamo 4 CPU.

Archiviazione CPU Memoria Velocità pacchetti (pps) Numero massimo di connessioni attive
20 GB 1 (non in 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

Mettere da parte VIP e indirizzi IP

VIP

Indipendentemente dalla modalità di bilanciamento del carico, devi escludere 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.

Inoltre, pensa a quanti servizi di tipo LoadBalancer sono probabilmente attivi nel tuo cluster utente in un dato momento e metti un numero sufficiente di VIP per questi servizi. Quando creerai servizi di tipo LoadBalancer in un secondo momento, i cluster Anthos su VMware configurano automaticamente i VIP di servizio sul bilanciatore del carico.

Indirizzi IP del nodo

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 un numero sufficiente di indirizzi per i nodi nel cluster di amministrazione e i nodi in tutti i cluster utente che intendi creare. Metti da parte anche un indirizzo IP aggiuntivo da utilizzare per ogni cluster durante l'upgrade del cluster. Per informazioni dettagliate sul numero di indirizzi IP del nodo da escludere, consulta la sezione Creazione di un cluster di amministrazione.

Indirizzi IP delle VM di Seesaw

Quindi, per ciascun cluster, amministratore e utente, metti da parte gli indirizzi IP per le VM che eseguiranno i bilanciatori del carico di Seesaw. Il numero di indirizzi che imposti dipende dalla creazione o meno dei bilanciatori del carico di Seesaw ad alta disponibilità o dei bilanciatori del carico di Seesaw non ad alta disponibilità.

Indirizzi IP master

Oltre agli indirizzi IP per le VM di Seesaw, metti da parte anche un singolo indirizzo IP master per la coppia di VM di Seesaw per ogni cluster.

Configurazione ad alta disponibilità

Se la configurazione non è ad alta disponibilità:

  • Per il cluster di amministrazione, riserva un indirizzo IP per una VM di Seesaw e un indirizzo IP master per il bilanciatore del carico di Seesaw. Entrambi gli indirizzi devono trovarsi sulla stessa VLAN dei nodi del cluster di amministrazione.

  • Per il cluster utente, metti da parte un indirizzo IP per una VM di Seesaw e 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

Il diagramma precedente descrive i due gruppi di porte utilizzati in una configurazione ad alta disponibilità e il modo in cui sono collegati alle interfacce di rete sulle VM di Seesaw. Per una singola VM Seesaw, decidi se le due interfacce di rete devono essere connesse allo stesso gruppo di porte vSphere o a gruppi di porte separati. Se i gruppi di porte sono separati, devono trovarsi sulla stessa VLAN. Ti consigliamo vivamente di avere due gruppi di porte separati.

Creare 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. Se intendi utilizzare indirizzi IP statici per i nodi del cluster, devi creare un file di blocco IP separato per tali indirizzi.

Compilare i file di configurazione

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

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

In loadBalancer, compila la sezione seesaw:

loadBalancer:
  kind: Seesaw
  seesaw:

Per informazioni su come compilare la sezione seesaw di un file di configurazione del cluster, fai riferimento a loadbalancer.seesaw (cluster di amministrazione) o loadbalancer.seesaw (cluster utente).

Nel file di configurazione del cluster di amministrazione, specifica quanto segue:

  • VIP per il server API di Kubernetes del cluster di amministrazione
  • VIP per i componenti aggiuntivi del cluster di amministrazione
  • Indirizzo IP master per la coppia di VM di Seesaw che gestiscono il cluster di amministrazione.

Questi VIP devono essere nella subnet del cluster di amministrazione.

Nel file di configurazione del cluster utente, indica:

  • VIP per il server API Kubernetes del cluster utente (deve trovarsi nella subnet del cluster di amministrazione)
  • VIP Ingress nel cluster utente
  • Indirizzo IP master per la coppia di VM di Seesaw che gestiscono il cluster utente.

Gli ultimi due indirizzi nell'elenco precedente devono trovarsi nella subnet del cluster utente.

Attiva l'apprendimento MAC o la modalità promiscua (solo alta disponibilità)

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 machine learning, trasmissione contraffatta e modalità promiscua sul gruppo di porte del bilanciatore del carico.

Il modo in cui attivi queste funzionalità varia in base al tipo di sensore in tuo possesso:

Tipo di sensoreAttivazione delle funzionalitàImpatto sulla sicurezza
vSphere 7.0 VDS Per vSphere 7.0 con alta disponibilità, devi impostare loadBalancer.seesaw.disableVRRPMAC su true. L'apprendimento MAC non è supportato.
vSphere 6.7 con VDS 6.6

Abilita l'apprendimento MAC e le trasmissioni falsificate 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. Devi avere l'autorizzazione dvPort group.Edit per questa operazione.

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 alla 6.6

Abilita la modalità promiscua e le trasmissioni contraffatte per il gruppo di porte del bilanciatore del carico. Utilizza l'interfaccia utente di vSphere nella pagina del gruppo di porte nella scheda Networking: Modifica impostazioni -> Sicurezza. Tutte le VM sul gruppo di porte del bilanciatore del carico sono in modalità promiscua. Quindi qualsiasi VM sul gruppo di porte del bilanciatore del carico può vedere 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 degli indirizzi MAC sul passaggio logico. vSphere non supporta la creazione di due sensori logici nello stesso dominio di livello 2. Quindi le VM di Seesaw e i nodi del cluster devono trovarsi sullo stesso passaggio logico. Ciò significa che l'apprendimento MAC è abilitato per tutti i nodi del cluster. Un utente malintenzionato potrebbe ottenere uno spoofing MAC eseguendo pod con privilegi nel cluster.
Cambiamento standard di vSphere Abilita la modalità promiscua e le trasmissioni contraffatte per il gruppo di porte del bilanciatore del carico. Utilizza l'interfaccia utente vSphere su ogni host ESXI: Configura -> sensori virtuali -> sensore standard -> modifica impostazione sul gruppo di porte -> sicurezza. Tutte le VM sul gruppo di porte del bilanciatore del carico sono in modalità promiscua. Quindi qualsiasi VM sul gruppo di porte del bilanciatore del carico può vedere 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 su come 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 sistema operativo

Carica le immagini del sistema operativo nell'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 tuo cluster di amministrazione

Segui le istruzioni in Creare un cluster di amministrazione per creare il tuo cluster di amministrazione.

Completa la compilazione dei file di configurazione del cluster utente

Segui le istruzioni riportate nell'articolo 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: il percorso del file kubeconfig del cluster di amministrazione

  • USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente

Carica immagini sistema operativo

Carica le immagini del sistema operativo nell'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 Crea un cluster utente per creare il tuo cluster utente.

Test del rendimento 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 le risposte direttamente ai client, ignorando il bilanciatore del carico, utilizzando il server Direct Redirect.

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

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

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

Limiti di scalabilità

Il bilanciamento del carico in bundle prevede limiti relativi alla scalabilità del cluster. Esiste un limite al numero di nodi nel cluster e c'è un limite al numero di servizi che possono essere configurati sul bilanciatore del carico. Esiste anche un limite per i 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 di controlli di integrità dipende dal numero di nodi e dal traffico di Servizi locali. Un servizio di traffico locale è un servizio con externalTrafficPolicy impostato su "Local".

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

Esempio: nella versione 1.3.1, supponiamo di avere 100 nodi e 99 servizi locali di traffico. Quindi il numero di controlli di integrità è 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, il bilanciatore del carico viene aggiornato automaticamente. 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. Prima di tutto, 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: il percorso del file kubeconfig del cluster di amministrazione

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

  • USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente

Visualizza log di Seesaw

Il bilanciatore del carico in bundle di 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 v1.6, se Stackdriver è abilitato, anche i log vengono caricati in Cloud. Puoi visualizzarli in formato ""anthos_l4lb". Per disabilitare il caricamento dei log, puoi connetterti tramite SSH alla VM ed eseguire:

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

Visualizza le informazioni sulle VM di Seesaw

Puoi ottenere informazioni sulle tue VM di Seesaw per un cluster dalla risorsa personalizzata di SeesawGroup.

Visualizzare 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 in bundle di Seesaw fornisce le seguenti metriche:

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

A partire dalla v1.6, queste metriche vengono caricate in Cloud con Stackdriver. Puoi visualizzarle nella risorsa di monitoraggio di "anthos_l4lb".

Puoi anche utilizzare soluzioni di monitoraggio e dashboard di 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 quel 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: il percorso del file di configurazione del cluster di amministrazione

  • USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente

  • ADMIN_CLUSTER_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione

  • GROUP_FILE: percorso del file di 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.

Configurazione dei criteri firewall distribuiti NSX-T stateless da utilizzare con il bilanciatore del carico di Seesaw

Se la configurazione utilizza il firewall distribuito NSX-T stateful e vuoi utilizzare anche il bilanciatore del carico di Seesaw, hai a disposizione diverse opzioni. Scegli l'opzione più adatta al tuo ambiente.

Elenco di controllo per la configurazione di NSX

Prima di implementare una delle opzioni correttive descritte, verifica di disporre della seguente configurazione NSX DFW:

  • Le sezioni NSX DFW di Stateful sono la configurazione predefinita. Probabilmente è ciò che hai nel tuo ambiente. Vedi Sezioni firewall e regole firewall.

  • L'inserimento dei servizi viene talvolta utilizzato con NSX DFW per fornire il concatenamento dei servizi e l'ispezione L7 come parte dell'integrazione dei partner. Anche i criteri di inserimento dei servizi sono stateful per impostazione predefinita. Per verificare se questa integrazione è attiva nel tuo ambiente, consulta le seguenti informazioni.

Opzione 1--Crea un criterio firewall distribuito stateless per i bilanciatori del carico di Seesaw

Con questa opzione, puoi mantenere abilitato il firewall distribuito nell'ambiente, mappando l'infrastruttura Anthos, in particolare i bilanciatori del carico di Seesaw, a un criterio stateless. Assicurati di prendere in considerazione le differenze tra firewall stateless e stateful, per assicurarti di scegliere il tipo più adatto al tuo ambiente. Consulta la sezione Aggiunta di una sezione delle regole firewall in modalità Manager - Procedura - Passaggio 6 della documentazione di VMware.

Per creare un criterio firewall stateless:

  1. Vai a Tag &inventario. Crea un tag denominato seesaw.

  2. Vai a Inventario > Gruppi. Crea un gruppo denominato Seesaw.

  3. Configura i membri dell'insieme di Seesaw.

    • Fai clic su Imposta membri. Configura i membri del set con criteri di appartenenza basati sul tag seesaw che hai creato. Anche se l'utilizzo dei tag NSX è generalmente considerato una best practice da VMware, questa metodologia richiede l'automazione per impostarli ogni volta che l'ambiente cambia, ad esempio quando esegui l'upgrade o il ridimensionamento dei cluster Anthos nel tuo ambiente. In tal caso, un criterio basato su alcuni altri criteri di appartenenza potrebbe funzionare meglio. Puoi utilizzare altre opzioni di appartenenza dinamica, come i nomi delle VM (incluse le espressioni regolari), i segmenti e le porte dei segmenti. Per ulteriori informazioni sui criteri di appartenenza al gruppo, consulta l'articolo Aggiungere un gruppo.
  4. Vai a Sicurezza > firewall distribuito. Crea una sezione denominata Anthos.

  5. Fai clic sull'icona a forma di ingranaggio in alto a destra e imposta l'opzione Stateful su No.

  6. Aggiungi le regole alla sezione. Si consiglia di aggiungere almeno due regole simmetriche, come le seguenti:

    Source: Seesaw Group, Destination: Any, Applied to: Seesaw Group
    Source: Any, Destination: Seesaw Group, Applied to: Seesaw Group
    

  7. Pubblica le modifiche e verifica le operazioni.

La sezione stateless deve essere inserita nella tabella NSX DFW in modo da avere la precedenza su altre sezioni che potrebbero consentire lo stesso traffico stateful, mascherando così le regole stateless. Assicurati che la sezione stateless sia la più specifica e che preceda altri criteri che potrebbero creare una sovrapposizione.

Sebbene non sia obbligatorio, puoi creare un gruppo che includa tutte le VM Anthos utilizzando un criterio di appartenenza approssimativo, ad esempio il tag di segmento. Questo significa che tutte le VM collegate a una specifica rete NSX sono incluse nel gruppo. Puoi quindi utilizzare questo gruppo nel criterio stateless.

Opzione 2: aggiungi le VM di Seesaw all'elenco di esclusione dei firewall distribuiti

Con questa opzione, puoi escludere completamente le VM dall'ispezione del firewall distribuito senza disabilitare il file NSX DFW. Vedi Gestire un elenco di esclusione del firewall.

  1. Vai a Sicurezza > firewall distribuito. Seleziona Azioni > Elenco di esclusione.

  2. Scegli il gruppo Seesaw o il gruppo che include tutte le VM Anthos.

Risolvere i problemi

Recupero di una connessione SSH a una VM Seesaw

Talvolta potresti voler usare SSH in una VM di Seesaw per risolvere i problemi o eseguire il debug.

Recupera la chiave SSH

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

  1. Recupera il secret di seesaw-ssh dal cluster. Recupera la chiave SSH dal secret e dalla base66. 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 recuperare la chiave SSH:

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

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

    Inoltre, gkectl create loadbalancer stampa la posizione del file del gruppo.

  4. 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
    
  5. Imposta le autorizzazioni appropriate per il file della chiave:

    chmod 0600 /tmp/seesaw-ssh-key
    

Ora puoi utilizzare SSH per accedere alla VM di Seesaw:

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

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

Recupero 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 gli snapshot di Seesaw e 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: il percorso del file kubeconfig del cluster di amministrazione

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

Ricrea la VM di Seesaw dallo stato non funzionante

Se una VM Seesaw viene eliminata per errore, puoi ricrearla utilizzando il comando gkectl upgrade loadbalancer con i flag --no-diff e --force. Questa operazione ricrea tutte le VM di Seesaw nel tuo cluster indipendentemente dallo stato di esistenza o integrità. Se il bilanciatore del carico è in modalità ad alta disponibilità e viene eliminata una sola VM su due, l'esecuzione di questo comando ricrea entrambe le VM.

Ad esempio, per ricreare il bilanciatore del carico di Seesaw nel cluster di amministrazione, esegui il comando seguente:

gkectl upgrade loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config ADMIN_CLUSTER_CONFIG --admin-cluster --no-diff --force

Per ricreare il bilanciatore del carico di Seesaw nel cluster utente, esegui questo comando:

gkectl upgrade loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG --no-diff --force

Sostituisci quanto segue:

  • ADMIN_CLUSTER_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione

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

  • USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente

Problemi noti

Cisco ACI non funziona con il server Direct Redirect (DSR)

Seesaw viene eseguito in modalità DSR e per impostazione predefinita non funziona in Cisco ACI a causa dell'apprendimento IP del piano dati. Una possibile soluzione alternativa per l'utilizzo del gruppo di endpoint applicazione è disponibile qui.

Citrix Netscaler non funziona con Direct Server Return (DSR)

Se esegui il bilanciatore del carico Netscaler davanti a Seesaw, il forwarding basato su MAC (MBF) deve essere disattivato. Consulta la documentazione di Citrix.

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

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