Arrêter une lame

Cette page explique comment arrêter et redémarrer l'un des blades de l'appliance Google Distributed Cloud (GDC) isolée, par exemple pour déplacer l'appareil afin d'effectuer une maintenance sur un blade.

Avant de commencer

Assurez-vous d'arrêter toutes les charges de travail avant de continuer. Google ne peut pas garantir ce qui se passera si des charges de travail sont actives lors d'un arrêt.

Si vous souhaitez éteindre tous les voyants, consultez Éteindre l'appareil. Lorsque vous suivez ces instructions, arrêtez un seul blade et laissez l'appliance Google Distributed Cloud (GDC) isolée fonctionner avec deux blades actifs.

Prérequis

  1. Vous pouvez exécuter ce runbook sur un ordinateur portable ou un poste de travail connecté au réseau de l'appliance Google Distributed Cloud (GDC) isolée. Vous pouvez également connecter un ordinateur portable ou un poste de travail au commutateur en suivant la section Connecter l'appareil.
  2. Assurez-vous d'avoir accès à Kubeconfig pour le cluster d'administrateur racine.
  3. Définissez la variable d'environnement KUBECONFIG correcte en exécutant export KUBECONFIG=<path to kubeconfig>.

Arrêter le blade

  1. Obtenez les informations sur le nœud en exécutant kubectl get nodes -A. Déterminez le NODE_NAME de la lame à arrêter.

  2. Suspendez la synchronisation BareMetalHost en exécutant la commande suivante pour arrêter le blade :

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=true" --overwrite
    

    Voici un exemple de résultat de cette commande :

    baremetalhost.metal3.io/**-**-bm** annotated
    
  3. Marquez le nœud cible comme non ordonnançable :

    kubectl cordon NODE_NAME
    

    Exemple de sortie :

    node/**-**-bm** cordoned
    
  4. Drainez le nœud cible :

    kubectl drain NODE_NAME --delete-emptydir-data --grace-period 900 --ignore-daemonsets --disable-eviction
    

    Exemple de résultat :

    node/**-**-bm** already cordoned
    WARNING: ignoring DaemonSet-managed Pods: kube-system/anetd-krj2z, kube-system/etcd-defrag-xh469, kube-system/ipam-controller-manager-2f4dz, kube-system/istio-cni-node-cgqv4, kube-system/kube-proxy-5mwf2, kube-system/localpv-mn2jh, kube-system/metallb-speaker-6l7sv, mon-system/mon-node-exporter-backend-nd8mp, netapp-trident/netapp-trident-node-linux-rrlmd, obs-system/anthos-audit-logs-forwarder-tpfqv, obs-system/anthos-log-forwarder-npjh4, obs-system/kube-control-plane-metrics-proxy-wp8nh, obs-system/log-failure-detector-crbnv, obs-system/oplogs-forwarder-sqwvj, vm-system/macvtap-v9pgp, vm-system/virt-handler-86khx
    pod/grafana-0 deleted
    pod/capi-kubeadm-bootstrap-controller-manager-1.30.400-gke.136lvgtf deleted
    pod/grafana-0 deleted
    pod/grafana-proxy-server-86d8fc4758-mkc4f deleted
    .
    .
    .
    
  5. Arrêtez progressivement le nœud cible :

  6. Désactivez NODE_NAME à l'aide d'iLO :

    • Récupérez les identifiants pour accéder à iLO :

      1. Obtenez le nom d'utilisateur :

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.username}" | base64 --decode
        
      2. Obtenez le mot de passe :

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.password}" | base64 --decode
        
      3. Récupérez l'adresse BMC-IP pour NODE_NAME à partir des valeurs de la colonne BMC-IP :

        kubectl get servers -A
        
    • Accédez à l'adresse BMC-IP obtenue à l'étape précédente, puis connectez-vous en saisissant le nom d'utilisateur et le mot de passe obtenus.

    • Pointez sur le premier bouton de la première ligne. Power: ON devrait s'afficher. Cliquez dessus. Un menu déroulant s'affiche. Cliquez sur le premier élément intitulé Momentary Press. La couleur du bouton passe du vert à l'orange, ce qui signifie que le nœud est en cours d'arrêt. Attendez que le bouton devienne jaune, ce qui indique que la machine est éteinte. Cela prendra quelques minutes.

  7. Attendez 30 minutes que la réconciliation soit terminée.

Redémarrer la lame

Cette section décrit la procédure à suivre pour démarrer une lame qui a été arrêtée précédemment.

Prérequis

Vous pouvez exécuter ce runbook sur un ordinateur portable ou un poste de travail connecté au réseau de l'appliance Google Distributed Cloud (GDC) isolée. Vous pouvez également connecter un ordinateur portable ou un poste de travail au commutateur en suivant la section Connecter l'appareil. Assurez-vous d'avoir accès à Kubeconfig pour le cluster d'administrateur racine. Définissez la variable d'environnement KUBECONFIG correcte en exécutant export KUBECONFIG=<path to kubeconfig>.

Plan d'action

  1. Appuyez sur le bouton Marche/Arrêt de la lame. Une fois la lame allumée, attendez quelques minutes que le plan de contrôle se connecte. kubectl devrait pouvoir se connecter au plan de contrôle en moins de 30 minutes.

  2. Déterminez le nom du nœud cible en exécutant kubectl get nodes -A.

  3. Marquez le nœud cible comme non programmable pour activer la planification :

    kubectl uncordon `NODE_NAME`
    
  4. Reprenez la synchronisation de BareMetalHost pour le nœud cible :

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=false" --overwrite
    
  5. Attendez 30 minutes que la réconciliation soit terminée.