כיבוי של להב אחד

בדף הזה מוסבר איך לכבות ולהפעיל מחדש כל אחד מה-blades של מכשיר Google Distributed Cloud (GDC) air-gapped, למשל כדי להעביר את המכשיר לצורך תחזוקה של blade.

לפני שמתחילים

לפני שממשיכים, חשוב לעצור את כל עומסי העבודה. ‫Google לא יכולה להבטיח מה יקרה אם עומסי עבודה יהיו פעילים במהלך כיבוי.

אם רוצים לכבות את כל הלהבים, פועלים לפי ההוראות שבקטע כיבוי המכשיר. כשפועלים לפי ההוראות האלה, צריך לכבות רק להב אחד ולהשאיר את מכשיר Google Distributed Cloud ‏ (GDC) עם שני להבים פעילים.

דרישות מוקדמות

  1. אפשר להריץ את קובץ runbook הזה במחשב נייד או בתחנת עבודה שמחוברים לרשת של מכשיר Google Distributed Cloud (GDC) עם air gap. אפשר גם לחבר מחשב נייד או תחנת עבודה למתג באמצעות ההוראות שבקטע חיבור המכשיר.
  2. מוודאים שיש לכם גישה ל-Kubeconfig עבור אשכול האדמין הראשי.
  3. מגדירים את משתנה הסביבה הנכון של KUBECONFIG על ידי הפעלת הפקודה export KUBECONFIG=<path to kubeconfig>.

כיבוי השרת

  1. מריצים את הפקודה kubectl get nodes -A כדי לקבל את פרטי הצומת. קובעים את NODE_NAME של ה-blade שרוצים לכבות.

  2. כדי להשהות את הסנכרון של BareMetalHost, מריצים את הפקודה הבאה כדי להשבית את השרת:

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

    פלט לדוגמה של הפקודה הזו:

    baremetalhost.metal3.io/**-**-bm** annotated
    
  3. מגדירים את צומת היעד:

    kubectl cordon NODE_NAME
    

    פלט לדוגמה:

    node/**-**-bm** cordoned
    
  4. מרוקנים את צומת היעד:

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

    פלט לדוגמה:

    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. מבצעים כיבוי מבוקר של צומת היעד:

  6. השבתה של NODE_NAME באמצעות iLO:

    • מאחזרים את פרטי הכניסה כדי לגשת ל-iLO:

      1. מציאת שם המשתמש:

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.username}" | base64 --decode
        
      2. כדי לקבל את הסיסמה:

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.password}" | base64 --decode
        
      3. אחזור כתובת BMC-IP של NODE_NAME מהערכים בעמודה BMC-IP:

        kubectl get servers -A
        
    • עוברים לכתובת BMC-IP שהתקבלה בשלב הקודם ונכנסים לחשבון באמצעות שם המשתמש והסיסמה שהתקבלו.

    • מעבירים את העכבר מעל הלחצן הראשון בשורה העליונה. אמור להופיע הכיתוב Power: ON. לוחצים עליו. יופיע תפריט נפתח. לוחצים על הפריט הראשון עם התווית Momentary Press. הצבע של הלחצן ישתנה מירוק לכתום, כלומר הצומת נסגר. מחכים שהלחצן ישנה את הצבע שלו לצהוב, כדי לדעת שהמכשיר כבוי. התהליך הזה יימשך כמה דקות.

  7. ממתינים 30 דקות לסיום תהליך ההתאמה.

הפעלה מחדש של השרת

בקטע הזה מתוארים השלבים להפעלה של blade שהושבת קודם.

דרישות מוקדמות

אפשר להריץ את קובץ runbook הזה במחשב נייד או בתחנת עבודה שמחוברים לרשת של מכשיר Google Distributed Cloud (GDC) עם air gap. אפשר גם לחבר מחשב נייד או תחנת עבודה למתג באמצעות ההוראות שבקטע חיבור המכשיר. מוודאים שיש לכם גישה ל-Kubeconfig עבור אשכול האדמין הראשי. מגדירים את משתנה הסביבה KUBECONFIG על ידי הפעלת הפקודה export KUBECONFIG=<path to kubeconfig>.

תוכנית פעולה

  1. לוחצים על כפתור ההפעלה בלהב. אחרי שמפעילים את ה-blade, מחכים כמה דקות עד שמישור הבקרה מתחבר. kubectl אמור להתחבר למישור הבקרה תוך פחות מ-30 דקות.

  2. מריצים את הפקודה kubectl get nodes -A כדי לקבוע את השם של צומת היעד.

  3. כדי לאפשר תזמון, צריך להסיר את ההגנה מהצומת של היעד:

    kubectl uncordon `NODE_NAME`
    
  4. מחדשים את הסנכרון של BareMetalHost לצומת היעד:

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=false" --overwrite
    
  5. ממתינים 30 דקות לסיום תהליך ההתאמה.