Das Netzwerksystem umfasst die folgenden Komponenten:
Verwaltungsnetzwerk: Das Out-of-Band-Verwaltungsnetzwerk, das die folgenden zwei Arten von Switches umfasst:
- Verwaltungsschalter
- Management-Aggregations-Switches
Datenebenennetzwerk: Das Netzwerk, über das der Nutzerverkehr geleitet wird. Es umfasst die folgenden drei Arten von Switches:
- Top-of-Rack-Switches (ToR)
- Aggregations-Switches
- Border-Leaf-Switches
Wenn die aktuelle Firmware auf den Switches nicht der erwarteten Version entspricht, versucht der Netzwerk-Bootstrap, die Switches auf die erwartete Switch-Betriebssystemversion für die Air-Gap-Version von Google Distributed Cloud (GDC) zu bringen.
12.1 Hinweise
Die Switches werden möglicherweise mit Werkseinstellungen ausgeliefert. Bevor Sie beginnen, setzen Sie alle Schalter zurück, um vorhandene Konfigurationen zu entfernen. Stellen Sie dazu eine Verbindung über die serielle Konsole her und führen Sie den folgenden Befehl aus:
write erase
Nachdem Sie die vorhandene Switch-Konfiguration entfernt haben, laden Sie den Switch neu:
reload in 5
12.2 Netzwerkinstallation
Führen Sie die folgenden Schritte für die Netzwerkinstallation aus:
- Schalten Sie alle Schalter ein.
Starten Sie das Netzwerk-Bootstrap-Programm mit
sudo-Root-Zugriff auf dem Bootstrap-Computer:gdcloud system network install --config PATH_TO_CELLCFG --upgrade-switch-osErsetzen Sie
PATH_TO_CELLCFGdurch den Pfad zur Dateicellcfg.Wenn dieser Befehl fehlschlägt und die folgende Fehlermeldung angezeigt wird:
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 matchFühren Sie den Befehl
initnoch einmal aus, um diesen Fehler zu beheben:gdcloud system network init --config PATH_TO_CELLCFG
Lassen Sie die Schalter eingeschaltet. Die Switches durchlaufen die POAP-Bootsequenzen (PowerOn Auto Provisioning), um sich automatisch vom Bootstrap-Computer aus zu installieren.
Überwachen Sie das Bootstrap-Programmlog, um sicherzustellen, dass die Switches in der folgenden Reihenfolge hochgefahren werden:
- Management-Switch
1 - Andere Management-Switches und Management-Aggregations-Switches.
- Schalter für Datennetzwerke.
- Management-Switch
Behalten Sie das Bootstrap-Log im Blick. Nachdem Sie die vorherigen Schritte ausgeführt haben, werden die Schalter verbunden. Das Bootstrap-Programm installiert zusätzliche Konfigurationen auf den Management- und Datenswitches über APIs.
Warten Sie, bis im Bootstrap-Log die Meldung
Successfully bootstrapped all switches.angezeigt wird.
12.3. Bootstrap-Details
Verwenden Sie die POAP-Bootsequenz, um alle Switches im Netzwerk zu booten:
- Verbinden Sie den Bootstrap-Computer mit dem Managementswitch.
- Verbinden Sie den Management-Aggregations-Switch mit dem Management-Switch.
- Schließen Sie die restlichen Switches im selben Rack an.
- Verbinden Sie den Management-Aggregations-Switch mit einem anderen Rack.
- Schließen Sie alle anderen Switches an.
Auf dem Bootstrap-Computer wird die Switch-Konfiguration mit den YAML-Dateien für Switches im Pfad ./cellcfg generiert. Alle Switches verwenden die POAP-Bootsequenz (PowerOn Auto Provisioning), um ihre Konfigurationen zu empfangen. In Hardware 3.0 erhalten Netzwerk-Switches eine POAP-Datei mit ihren endgültigen Konfigurationen. Nachdem die Switches den POAP abgeschlossen haben, werden sie automatisch neu gestartet.
Nach dem Neustart müssen die Schalter mit den YAML-Dateien für Schalter im Pfad ./cellcfg übereinstimmen. Der Bootstrap-Computer sendet Anfragen an alle Switches, um eine erfolgreiche Switch-Verbindung und -Konfiguration sicherzustellen.
12.4. Routenkonfiguration nach dem Bootstrap
Konfigurieren Sie nach dem Netzwerk-Bootstrapping die Routen des Bootstrappers, um ihn auf die bevorstehenden Bootstrapping-Aufgaben vorzubereiten.
12.4.1. Datenebene-Gateway finden
Das Datenebenen-Gateway ist die Gateway-IP-Adresse für das Datenebenen-Netzwerk. Richten Sie die Gateway-IP-Adresse für die Kommunikation mit anderen Diensten im Datenebenennetzwerk ein.
So finden Sie die IP-Adresse des Datenebene-Gateways:
- Rufen Sie im Ordner
cellcfgdie Dateikub-ipam.yamlauf. Suchen Sie die
SubnetClaim-Ressource mit dem Namencontrol-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_FILEErsetzen Sie
PATH_TO_KUB_IPAM_FILEdurch den Pfad zur Dateicellcfg/kub-ipam.yaml.Suchen Sie im Abschnitt
spec.ipv4Specnach der Gateway-IP-Adresse, die alstype: GatewayReservationaufgeführt ist. Die Gateway-IP-Adresse für die Datenebene-Schnittstelle ist beispielsweise172.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. Skript für Routen auf dem Bootstrapper erstellen
Erstellen Sie ein Skript zum Erstellen der Routen:
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
Ersetzen Sie Folgendes:
MGMT_GATEWAY: die Gateway-Adresse aus dem Abschnitt Management-IP, CIDR und Gateway-Adresse ermitteln.MGMT_CIDR: die Verwaltungs-CIDR aus dem Abschnitt Verwaltungs-IP-, CIDR- und Gateway-Adresse suchenMGMT_INTERFACE: Ein Beispiel für einen Namen der Verwaltungsschnittstelle istens15f0. Anhand der MAC-Adresse incellcfg/serv-core.yamlkann ermittelt werden, welche Schnittstelle für das Verwaltungsnetzwerk verwendet wird.DATA_GATEWAY: Die Gateway-IP-Adresse aus dem Abschnitt Datenebene-Gateway finden.
Mit diesem Snippet werden ein systemd-Dienst und ein Skript erstellt:
SCRIPT_PATH="/usr/local/sbin/add-routes.sh
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service
Der Dienst systemd ist erforderlich, damit die Routen nach dem Neustart des Systems erhalten bleiben.
Die hinzugefügten Routen umfassen:
- Die Standardroute zum Datennetzwerk über die
bond0-Schnittstelle. - Die Route zum Verwaltungsnetzwerk über die Verwaltungsschnittstelle.
12.5. Verbindung zu mehreren Zonen herstellen
Wenn die GDC-Instanz einem vorhandenen multizonalen Universum beitritt, folgen Sie der Anleitung unter Multizonenverbindung konfigurieren für jede Zone, um die Netzwerkverbindung zwischen den vorhandenen Zonen und der aktuellen Bereitstellungszone herzustellen.
12.6. Fehlerbehebung
Informationen zur Fehlerbehebung beim Netzwerk-Bootstrap finden Sie unter Fehlerbehebung beim Netzwerk-Bootstrap.
12.7. Mögliches Problem
Netzwerk-Switches, auf denen eine Version vor 9.3.10 vorinstalliert ist, können möglicherweise nicht gebootstrapped werden.
Weitere Informationen finden Sie unter Bekannte Probleme.