הוצאה משימוש של ארגון היברידי

במסמך הזה מוסבר איך להוציא ארגון משימוש בהטמעה היברידית. הוצאה משימוש של ארגון פירושה מחיקה של כל הנתונים שקשורים לארגון בכל ה-pods של Cassandra בכל אשכולות Kubernetes.

מגבלות

אפשר להוציא משימוש רק ארגון אחד בכל פעם. אי אפשר להוציא משימוש כמה ארגונים בו-זמנית.

אחזור שם הארגון

חלק מהפקודות בהוראות האלה מחייבות שימוש בשם ארגון בפורמט מתאים.

כדי לקבל את שם הארגון לשימוש בפקודות בדף הזה:

  1. מאחזרים את שם הארגון מקובץ overrides.yaml של הארגון.
  2. אם שם הארגון מכיל מקפים ("-"), צריך להחליף אותם בקו תחתון ("_").

הוראות

כדי להוציא ארגון מפריסת היברידית, פועלים לפי ההוראות הבאות.

  1. גיבוי הארגון
    1. אם הגיבויים לא מופעלים, מפעילים אותם בפריסה ההיברידית. בסביבות פריסה מרובות אזורים, משתמשים בפריסה היברידית שפועלת באזור הראשי. מידע על גיבויים היברידיים זמין במאמר בנושא סקירה כללית על גיבוי של Cassandra.
    2. מפעילים עבודת גיבוי היברידית באמצעות הפקודה הבאה:

      kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_JOB_NAME

      ‫BACKUP_JOB_NAME יכול להיות כל שם קונטיינר תקין.

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

  2. (אופציונלי) אם הגדרתם טלמטריה של Apigee (מדדים ו-Logger) בארגון שיימחק, תצטרכו לבצע את השלבים הבאים כדי להגדיר אותם מחדש כך שהמדדים ונתוני היומן יחולו על ארגון או פרויקט חדשים.
    1. מריצים את הפקודה הזו בארגון שאליו רוצים לשלוח את הנתונים. חשוב להקפיד להשתמש בקובץ overrides.yaml של הארגון. לדוגמה, אם הארגון שיוצא משימוש הוא test-dev, קובץ overrides.yaml צריך להכיל שדה org org: test-dev.
      helm upgrade telemetry apigee-telemetry/ \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f OVERRIDES_FILE.yaml
      
    2. מריצים את הפקודה הזו, ומקפידים להשתמש בארגון או בפרויקט הנכונים:
      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. מחיקת משאבי Kubernetes של הארגון מהפריסה ההיברידית.
    1. מוודאים שההקשר הנוכחי הוא ההקשר הנכון עבור אשכול Kubernetes של המקור:
      kubectl config current-context

      אם צריך, מגדירים את ההקשר של Kubernetes.

      כדי לראות את שם ההקשר של כל אשכול, מריצים את הפקודה הבאה:

      kubectl config get-contexts

      מגדירים את ההקשר לאשכול ולתחום שרוצים להוציא משימוש:

      kubectl config use-context CONTEXT_NAME

      כאשר CONTEXT_NAME הוא שם ההקשר של האשכול והאזור.

      לדוגמה:

          kubectl config get-contexts
          CURRENT   NAME                                                   CLUSTER                                                AUTHINFO                                               NAMESPACE
                    gke_example-org-1_us-central1_example-cluster-1        gke_example-org-1_us-central1_example-cluster-1        gke_example-org-1_us-central1_example-cluster-1        apigee
          *         gke_example-org-1_us-central1_example-cluster-2        gke_example-org-1_us-central1_example-cluster-2        gke_example-org-1_us-central1_example-cluster-2        apigee
                    gke_example-org-1_us-west1_example-cluster-2           gke_example-org-1_us-west1_example-cluster-2           gke_example-org-1_us-west1_example-cluster-2           apigee
      
          kubectl config use-context gke_example-org-1_us-west1_example-cluster-2
    2. מוחקים את ה-virtualhost.

      חוזרים על הפעולה לכל קבוצת סביבות:

      helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
      
    3. מוחקים את הסביבות. חוזרים על הפעולה לכל סביבה:
      helm -n APIGEE_NAMESPACE delete ENV_NAME
      
    4. מוחקים את הארגון ב-Apigee.
      helm -n APIGEE_NAMESPACE delete ORG_NAME
      
  4. מוחקים את הנתונים הארגוניים מהפריסה ההיברידית. אחרי השלמת השלב הזה, כל הנתונים של הארגון יימחקו מהפריסה ההיברידית.
    1. מריצים את הפקודה exec אל הפוד apigee-cassandra-default-0:
      kubectl exec -it -n APIGEE_NAMESPACE apigee-cassandra-default-0 -- /bin/bash
      
    2. מריצים את הפקודה הבאה. מעתיקים את רשימת כל השמות שמופיעים בפלט. תצטרכו את הרשימה הזו בהמשך.
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"

      הוראות איך למצוא ולהכין את ORG_NAME מופיעות במאמר איך מקבלים את שם הארגון.

      יציאה מתא apigee-cassandra-default-0.

    3. יוצרים פוד של לקוח לניפוי באגים ב-Cassandra, כמו שמתואר במאמר בנושא יצירת מאגר לקוחות לניפוי באגים. אחרי שמקבלים הנחיה cqlsh, עוברים לשלב הבא.
    4. מריצים את הפקודות הבאות בהנחיה cqlsh:
      desc keyspaces;

      מוודאים שהפקודה הזו לא מחזירה שגיאות.

      לכל שם ברשימה שנוצרה קודם מ-apigee apigee-cassandra-default-0, מריצים את הפקודות הבאות:

      drop keyspace KEYSPACE_NAME;

      יוצאים מה-pod של לקוח ניפוי הבאגים של Cassandra.

    5. מבצעים הפעלה מחדש מתגלגלת של כל ה-pods של Cassandra. אפשר להפעיל מחדש את ה-pods של Cassandra בכל סדר, כל עוד מפעילים מחדש רק pod אחד של Cassandra בכל פעם. בפריסות מרובות אזורים, מבצעים הפעלה מחדש מתגלגלת בכל פוד Cassandra בכל אזור היברידי.

      מריצים את הפקודה הבאה ומוודאים שהמצב הוא 'פועל':

      kubectl get apigeeds -n APIGEE_NAMESPACE

      מפעילים מחדש פוד יחיד של Cassandra באמצעות הפקודה הבאה:

      kubectl delete pod -n APIGEE_NAMESPACE CASSANDRA_POD_NAME

      מחכים שה-pod יגיע למצב Running באמצעות הפקודה:

      kubectl get pods -n APIGEE_NAMESPACE

      מפעילים מחדש את ה-pod הבא של Cassandra.

    6. אחרי שמריצים את הפקודות cqlsh, מריצים את הפקודות הבאות בכל הפודים של Cassandra בפריסה ההיברידית. בפריסות היברידיות מרובות אזורים, מריצים את הפקודות בכל פוד Cassandra בכל האזורים ההיברידיים.
      kubectl exec -it -n APIGEE_NAMESPACE CASSANDRA_POD_NAME -- /bin/bash
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2

      הוראות איך למצוא ולהכין את ORG_NAME מופיעות במאמר איך מקבלים את שם הארגון.

      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
    7. יוצאים מה-pod של Cassandra.