Il sistema di rete include i seguenti componenti:
Rete di gestione: la rete di gestione out-of-band che include i seguenti due tipi di switch:
- Switch di gestione
- Opzioni di aggregazione della gestione
Rete del piano dati: la rete che trasporta il traffico utente e include i seguenti tre tipi di switch:
- Switch top-of-rack (TOR)
- Interruttori di aggregazione
- Interruttori a foglia del bordo
Se il firmware attuale sugli switch non è della versione prevista, il bootstrap di rete tenta di portare gli switch alla versione del sistema operativo prevista per la versione air-gapped di Google Distributed Cloud (GDC).
12.1. Prima di iniziare
Gli switch potrebbero essere spediti con le impostazioni predefinite di fabbrica. Prima di iniziare, ripristina tutti gli interruttori per rimuovere qualsiasi configurazione esistente. Per farlo, connettiti utilizzando la console seriale ed esegui il seguente comando:
write erase
Dopo aver rimosso la configurazione dello switch esistente, ricarica lo switch:
reload in 5
12.2. Installazione di rete
Segui i passaggi riportati di seguito per l'installazione della rete:
- Accendi tutti gli interruttori.
Avvia il programma di bootstrap di rete con accesso root
sudosulla macchina di bootstrap:gdcloud system network install --config PATH_TO_CELLCFG --upgrade-switch-osSostituisci
PATH_TO_CELLCFGcon il percorso del filecellcfg.Se questo comando non va a buon fine e viene visualizzato il seguente messaggio di errore:
root@bootstrapper:~/hams/gdc/output/cellcfg# gdcloud system network install --config /root/hams/gdc/output/cellcfg --upgrade-switch-os Error: failed to initialize KIND: could not determine harbor address (no match between local and docker hostnames): could not find a matchEsegui di nuovo il comando
initper risolvere l'errore:gdcloud system network init --config PATH_TO_CELLCFG
Mantieni gli interruttori accesi. Gli switch eseguono le sequenze di avvio del provisioning automatico all'accensione (POAP) per installarsi automaticamente da remoto dalla macchina bootstrap.
Monitora il log del programma di bootstrap per assicurarti che gli switch siano attivi nel seguente ordine:
- Interruttore di gestione
1. - Altri switch di gestione e switch di aggregazione della gestione.
- Switch di rete dati.
- Interruttore di gestione
Continua a monitorare il log di bootstrap. Dopo aver completato i passaggi precedenti, gli interruttori si connettono. Il programma di bootstrap installa configurazioni aggiuntive sugli switch di gestione e sugli switch di dati tramite le API.
Attendi finché nel log di bootstrap non viene visualizzato il messaggio
Successfully bootstrapped all switches.
12.3. Dettagli del bootstrap
Utilizza la sequenza di avvio POAP per eseguire il bootstrap di tutti gli switch della rete come segue:
- Collega la macchina di bootstrap allo switch di gestione.
- Collega lo switch di aggregazione della gestione allo switch di gestione.
- Collega il resto degli switch nello stesso rack.
- Collega lo switch di aggregazione della gestione a un altro rack.
- Collega tutti gli altri interruttori.
La macchina di bootstrap genera la configurazione dello switch con i file YAML per gli switch nel percorso
./cellcfg. Tutti gli switch utilizzano la sequenza di avvio del provisioning automatico PowerOn (POAP) per ricevere le
configurazioni. Nell'hardware 3.0, gli switch di rete ricevono un file POAP con le loro
configurazioni finali. Al termine del POAP, gli switch si riavviano automaticamente.
Dopo il riavvio, gli switch devono essere allineati ai file YAML per gli switch nel percorso ./cellcfg. La macchina di bootstrap invia richieste a tutti gli switch per garantire una
connettività e una configurazione degli switch corrette.
12.4. Configurazione delle route post-bootstrap
Dopo la procedura di bootstrapping della rete, configura le route del bootstrapper per prepararlo alle prossime attività di bootstrapping.
12.4.1. Trovare il gateway del piano dati
Il gateway del piano dati è l'indirizzo IP del gateway per la rete del piano dati. Configura l'indirizzo IP del gateway per comunicare con altri servizi nella rete del piano dati.
Per trovare l'indirizzo IP del gateway del piano dati:
- Nella cartella
cellcfg, vai al filekub-ipam.yaml. Trova la risorsa
SubnetClaimdenominatacontrol-plane-subnet:yq eval -r ' select(.kind == "SubnetClaim" and .metadata.name == "control-plane-subnet") | .spec.ipv4Spec.staticReservedIpRanges[] | select(.type == "GatewayReservation") | .ipRange.startIPAddress ' PATH_TO_KUB_IPAM_FILESostituisci
PATH_TO_KUB_IPAM_FILEcon il percorso del filecellcfg/kub-ipam.yaml.Trova l'indirizzo IP del gateway nella sezione
spec.ipv4Specelencato cometype: GatewayReservation. Ad esempio, l'indirizzo IP del gateway per l'interfaccia del piano dati è172.19.0.1:# Source: kub-ipam-assets/templates/subnet_claims.yaml apiVersion: system.private.gdc.goog/v1alpha1 kind: SubnetClaim metadata: name: control-plane-subnet namespace: root labels: subnetclaims.system.private.gdc.goog/usage: "server" annotations: lcm.private.gdc.goog/claim-by-force: "true" helm.sh/resource-policy: keep spec: category: ExternalOverlayNetwork overlayNetwork: External cidrClaimName: control-plane-cidr ipv4Spec: staticReservedIpRanges: - ipRange: size: 1 startIPAddress: 172.19.0.1 type: GatewayReservation
12.4.2. Crea lo script per le route sul bootstrapper
Crea uno script per creare le route:
bash << 'EOF'
#!/bin/bash
SCRIPT_PATH="/usr/local/sbin/add-routes.sh"
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service"
MGMT_GATEWAY=MGMT_GATEWAY
MGMT_CIDR=MGMT_CIDR
MGMT_INTERFACE=MGMT_INTERFACE
BOND_GATEWAY=DATA_GATEWAY
rm -rf "$SCRIPT_PATH" 2>/dev/null
touch "$SCRIPT_PATH"
rm -rf "$SERVICE_PATH" 2>/dev/null
touch "$SERVICE_PATH"
echo -e '#!/bin/bash\n' > "$SCRIPT_PATH"
echo "ip route del $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static" >> "$SCRIPT_PATH"
echo "ip route add $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static" >> "$SCRIPT_PATH"
echo "ip route del default via $BOND_GATEWAY dev bond0 proto static" >> "$SCRIPT_PATH"
echo "ip route add default via $BOND_GATEWAY dev bond0 proto static" >> "$SCRIPT_PATH"
chmod +x "$SCRIPT_PATH"
echo -e "[Unit]\nDescription=Add Routes Service\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/usr/local/sbin/add-routes.sh\n\n[Install]\nWantedBy=default.target" > "$SERVICE_PATH"
systemctl daemon-reload
systemctl enable add-routes.service
systemctl restart add-routes.service
echo -e "\n ### add-routes.sh script file path ###"
ls -l $SCRIPT_PATH
echo -e "\n ### add-routes.service file path ###"
ls -l $SERVICE_PATH
echo -e "\n ### add-routes.service status ###"
systemctl status add-routes.service
echo -e "\n ### Show if add-routes.service is enabled at boot ###"
systemctl is-enabled add-routes.service
echo -e "\n ### Show the just added route to ens15f0 ###"
ip route show | grep ens15f0
echo -e "\n ### Show the just added default route ###"
ip route show | grep default
EOF
Sostituisci quanto segue:
MGMT_GATEWAY: l'indirizzo del gateway della sezione Trovare l'indirizzo IP di gestione, il CIDR e l'indirizzo del gateway.MGMT_CIDR: il CIDR di gestione della sezione Trova indirizzo IP, CIDR e gateway di gestioneMGMT_INTERFACE: un nome di interfaccia di gestione di esempio èens15f0. È possibile utilizzare l'indirizzo MAC incellcfg/serv-core.yamlper identificare l'interfaccia utilizzata per la rete di gestione.DATA_GATEWAY: l'indirizzo IP del gateway dalla sezione Trovare il gateway del piano dati.
Questo snippet crea un servizio systemd e uno script nel seguente modo:
SCRIPT_PATH="/usr/local/sbin/add-routes.sh
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service
Il servizio systemd è necessario per mantenere le route dopo il riavvio del sistema.
Le tratte aggiunte includono:
- La route predefinita alla rete di dati tramite l'interfaccia
bond0. - Il percorso alla rete di gestione tramite l'interfaccia di gestione.
12.5. Stabilisci la connettività multizona
Se l'istanza GDC si unisce a un universo multizona esistente, segui i passaggi descritti in Configura l'interconnessione multizona per ogni zona per stabilire la connettività di rete tra le zone esistenti e la zona di deployment corrente.
12.6. Risoluzione dei problemi
Per risolvere i problemi relativi al bootstrap di rete, consulta la pagina Risoluzione dei problemi relativi al bootstrap di rete.
12.7. Potenziale problema
Gli switch di rete precaricati con una versione precedente alla 9.3.10 potrebbero non riuscire a eseguire il bootstrap.
Per ulteriori informazioni, vedi Problemi noti.