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

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

מגבלות

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

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

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

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

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

הוראות

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

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

      kubectl create job -n apigee --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

      helm upgrade telemetry apigee-telemetry/ \
        --namespace apigee \
        --atomic \
        -f OVERRIDES_FILE.yaml
      

      apigeectl

      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --telemetry
    2. מריצים את הפקודה הזו, ומקפידים להשתמש בארגון או בפרויקט הנכונים:
      kubectl -n apigee get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. מחיקת משאבי Kubernetes של הארגון מהפריסה ההיברידית.

    Helm

    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 delete ENV_GROUP_NAME
      
    3. מוחקים את הסביבות. חוזרים על הפעולה לכל סביבה:
      helm -n apigee delete ENV_NAME
      
    4. מוחקים את הארגון ב-Apigee.
      helm -n apigee delete ORG_NAME
      

    apigeectl

    חשוב להקפיד להשתמש בקובץ overrides.yaml של הארגון. לדוגמה, אם הארגון שיוצא משימוש הוא test-dev, קובץ overrides.yaml צריך להכיל שדה org org: test-dev.

    בפריסות היברידיות בכמה אזורים, מריצים את הפקודות האלה מול כל פריסה היברידית בכל אזור.

    kubectl config current-context # Verify the current context is the correct context for the hybrid deployment
    apigeectl check-ready -f overrides.yaml # Check the deployment status
    apigeectl delete --settings virtualhost -f overrides.yaml
    apigeectl check-ready -f overrides.yaml # Check the deployment status
    apigeectl delete --all-envs -f overrides.yaml
    apigeectl check-ready -f overrides.yaml # Check the deployment status
    apigeectl delete --org -f overrides.yaml
    apigeectl check-ready -f overrides.yaml # Check the deployment status
        
  4. מוחקים את הנתונים הארגוניים מהפריסה ההיברידית. אחרי השלמת השלב הזה, כל הנתונים של הארגון יימחקו מהפריסה ההיברידית.
    1. מריצים את הפקודה exec אל הפוד apigee-cassandra-default-0:
      kubectl exec -it -n apigee 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 ;

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

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

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

      kubectl get apigeeds -n apigee

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

      kubectl delete pod -n apigee CASSANDRA_POD_NAME

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

      kubectl get pods -n apigee

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

    6. אחרי שמריצים את הפקודות cqlsh, מריצים את הפקודות הבאות בכל הפודים של Cassandra בפריסה ההיברידית. בפריסות היברידיות מרובות אזורים, מריצים את הפקודות בכל פוד Cassandra בכל האזורים ההיברידיים.
      kubectl exec -it -n apigee 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.