12. Bootstrap réseau

Temps estimé pour suivre la totalité du cours : 240 minutes

Propriétaire du composant exploitable : PNET

Profil de compétences : ingénieur de déploiement

Cette page décrit la procédure d'amorçage du réseau et de configuration des commutateurs.

Le système de réseau comprend les composants suivants :

  • Réseau de gestion : réseau de gestion hors bande qui inclut les deux types de commutateurs suivants :

    • Interrupteurs de gestion
    • Options d'agrégation de la gestion
  • Réseau du plan de données : réseau qui transporte le trafic utilisateur et qui inclut les trois types de commutateurs suivants :

    • Commutateurs top-of-rack (TOR)
    • Interrupteurs d'agrégation
    • Commutateurs feuilles de bordure

Si le micrologiciel actuel des commutateurs n'est pas de la version attendue, l'amorçage du réseau tente de mettre les commutateurs à la version attendue de l'OS des commutateurs pour la version Google Distributed Cloud (GDC) air-gapped.

12.1. Avant de commencer

Les commutateurs peuvent être livrés avec les paramètres par défaut. Avant de commencer, réinitialisez tous les commutateurs pour supprimer toute configuration existante. Pour ce faire, connectez-vous à l'aide de la console série et exécutez la commande suivante :

write erase

Après avoir supprimé la configuration de commutateur existante, rechargez le commutateur :

reload in 5

12.2. Installation réseau

Suivez les étapes ci-dessous pour installer le réseau :

  1. Allumez tous les commutateurs.
  2. Démarrez le programme d'amorçage du réseau avec l'accès racine sudo sur la machine d'amorçage :

    gdcloud system network install --config PATH_TO_CELLCFG --upgrade-switch-os
    

    Remplacez PATH_TO_CELLCFG par le chemin d'accès au fichier cellcfg.

    1. Si cette commande échoue et affiche le message d'erreur suivant :

      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 match
      
    2. Exécutez à nouveau la commande init pour résoudre cette erreur :

      gdcloud system network init --config PATH_TO_CELLCFG
      
  3. Laissez les boutons sur "Activé". Les commutateurs suivent les séquences de démarrage PowerOn Auto Provisioning (POAP) pour s'installer automatiquement à distance à partir de la machine bootstrap.

  4. Surveillez le journal du programme d'amorçage pour vous assurer que les commutateurs sont activés dans l'ordre suivant :

    1. Bouton de gestion 1.
    2. Autres commutateurs de gestion et commutateurs d'agrégation de gestion.
    3. Commutateurs de réseau de données.
  5. Continuez à surveiller le journal d'amorçage. Une fois les étapes précédentes effectuées, les commutateurs se connectent. Le programme d'amorçage installe des configurations supplémentaires sur les commutateurs de gestion et de données via des API.

  6. Attendez que le message Successfully bootstrapped all switches. s'affiche dans le journal d'amorçage.

12.3. Détails de l'amorçage

Utilisez la séquence de démarrage POAP pour amorcer tous les commutateurs du réseau comme suit :

  1. Connectez la machine d'amorçage au commutateur de gestion.
  2. Connectez le commutateur d'agrégation de gestion au commutateur de gestion.
  3. Connectez les autres commutateurs du même rack.
  4. Connectez le commutateur d'agrégation de gestion à un autre rack.
  5. Connectez tous les autres commutateurs.

La machine d'amorçage génère la configuration du commutateur avec les fichiers YAML pour les commutateurs dans le chemin d'accès ./cellcfg. Tous les commutateurs utilisent la séquence de démarrage PowerOn Auto Provisioning (POAP) pour recevoir leurs configurations. Dans la version 3.0 du matériel, les commutateurs réseau reçoivent un fichier POAP avec leurs configurations finales. Une fois que les commutateurs ont terminé le POAP, ils redémarrent automatiquement.

Après le redémarrage, les commutateurs doivent correspondre aux fichiers YAML des commutateurs dans le chemin d'accès ./cellcfg. La machine d'amorçage envoie des requêtes à tous les commutateurs pour s'assurer que la connectivité et la configuration des commutateurs sont correctes.

12.4. Configuration de la route après l'amorçage

Après le processus d'amorçage du réseau, configurez les routes du programme d'amorçage pour le préparer aux prochaines tâches d'amorçage.

12.4.1. Trouver la passerelle du plan de données

La passerelle de plan de données est l'adresse IP de passerelle pour le réseau de plan de données. Configurez l'adresse IP de la passerelle pour communiquer avec d'autres services du réseau du plan de données.

Pour trouver l'adresse IP de la passerelle du plan de données, procédez comme suit :

  1. Dans le dossier cellcfg, accédez au fichier kub-ipam.yaml.
  2. Recherchez la ressource SubnetClaim nommée control-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_FILE
    

    Remplacez PATH_TO_KUB_IPAM_FILE par le chemin d'accès au fichier cellcfg/kub-ipam.yaml.

  3. Recherchez l'adresse IP de la passerelle dans la section spec.ipv4Spec, sous type: GatewayReservation. Par exemple, l'adresse IP de la passerelle pour l'interface du plan de données est 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. Créer un script pour les routes sur le programme d'amorçage

Créez un script pour créer les routes :

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

Remplacez les éléments suivants :

Cet extrait crée un service systemd et un script comme suit :

SCRIPT_PATH="/usr/local/sbin/add-routes.sh
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service

Le service systemd est nécessaire pour que les routes restent en place après le redémarrage du système. Voici les routes ajoutées :

  • Route par défaut vers le réseau de données via l'interface bond0.
  • Route vers le réseau de gestion via l'interface de gestion.

12.5. Établir une connectivité multizone

Si l'instance GDC rejoint un univers multizone existant, suivez les étapes de la section Configurer l'interconnexion multizone pour chaque zone afin d'établir la connectivité réseau entre les zones existantes et la zone de déploiement actuelle.

12.6. Dépannage

Pour résoudre les problèmes liés à l'amorçage réseau, consultez Résoudre les problèmes d'amorçage réseau.

12.7. Problème potentiel

Les commutateurs réseau préchargés avec une version antérieure à 9.3.10 peuvent ne pas réussir l'amorçage.

Pour en savoir plus, consultez la section Problèmes connus.