כדי להימנע מCloud de Confiance חיובים על אשכול לא פעיל, כדאי להשתמש בתכונה 'מחיקה מתוזמנת של אשכול' ב-Managed Service for Apache Spark כשיוצרים אשכול. התכונה הזו מספקת אפשרויות למחיקת אשכול כשמתרחשים האירועים הבאים:
- אחרי תקופת חוסר פעילות מוגדרת של אשכול
- במועד עתידי ספציפי
- אחרי תקופה שמתחילה בזמן שליחת הבקשה ליצירת האשכול
פעולות שמשביתות את המחיקה המתוזמנת
בזמן שקלאסטר פועל, הפעולות הבאות משביתות את המחיקה המתוזמנת עד שהפעולה שגרמה להשבתה תבוטל:
- הסרת תפקיד IAM Managed Service for Apache Spark Service Agent בחשבון השירות Dataproc Service Agent
- השבתת Dataproc API בפרויקט של האשכול
- הפעלת הגנה מפני מחיקת מכונות וירטואליות ב-Compute Engine במכונה וירטואלית באשכול שמיועד למחיקה מתוזמנת
- הפעלת VPC Service Controls אם חשבון השירות של סוכן השירות (זהות מישור הבקרה) של Managed Service for Apache Spark לא נמצא בתוך גבולות הגזרה
חישוב זמן ההמתנה של אשכול
אתם יכולים להשתמש במחיקה מתוזמנת כדי למחוק אשכול אחרי זמן השבתה מוגדר של האשכול. החישוב של זמן בלי פעילות מתבצע אחרי יצירת האשכול והשלמת ההקצאה של האשכול. חישוב הזמן שהמערכת לא פעילה מתחיל כשאין משימות פעילות באשכול.
dataproc:dataproc.cluster-ttl.consider-yarn-activity מאפיין האשכול משפיע על חישוב זמן ההמתנה של האשכול באופן הבא:
- הנכס הזה מופעל (מוגדר ל-
true) כברירת מחדל. - כשהנכס הזה מופעל, גם YARN וגם פעילות Dataproc Jobs API צריכים להיות במצב סרק כדי להתחיל ולהמשיך להגדיל את החישוב של זמן הסרק של האשכול.
- הפעילות ב-YARN כוללת אפליקציות בהמתנה ואפליקציות שפועלות ב-YARN.
- הפעילות ב-Dataproc Jobs API כוללת משימות בהמתנה ומשימות שפועלות שנשלחו אל Dataproc Jobs API.
- כשהמאפיין הזה מוגדר לערך
false, מתחיל החישוב של זמן ההמתנה של האשכול, והוא נמשך רק כשאין פעילות ב-Dataproc Jobs API.
המאפיין dataproc:dataproc.cluster-ttl.consider-yarn-activity חל על אשכולות שנוצרו עם גרסאות תמונה שפורסמו בתאריך 1.4.64 ואחריו, 1.5.39, 2.0.13 וגרסאות תמונה מאוחרות יותר. באשכולות שנוצרו עם גרסאות קודמות של תמונות, רק הפעילות של Dataproc Jobs API נלקחת בחשבון בחישוב זמן ההמתנה של האשכול.
שימוש במחיקה מתוזמנת של אשכול
אפשר להגדיר ערכים של מחיקה מתוזמנת כשיוצרים אשכול באמצעות Google Cloud CLI, Dataproc API או מסוף Cloud de Confiance . אחרי שיוצרים את האשכול, אפשר לעדכן אותו כדי לשנות או למחוק ערכים של מחיקה מתוזמנת שהוגדרו קודם באשכול.
מסוףCloud de Confiance
- פותחים את הדף Create cluster.
- בקטע Define cost control settings (הגדרת אמצעים לבקרת עלויות), בוחרים באפשרות Set an optional retention policy to control costs (הגדרת מדיניות שמירת נתונים אופציונלית לבקרת עלויות), ואז בוחרים הגדרות של מחיקה מתוזמנת (או עצירה מתוזמנת).
CLI של gcloud
כדי ליצור או לעדכן ערכים של מחיקה מתוזמנת באשכול, מעבירים את הדגלים והערכים שמפורטים בטבלה הבאה לפקודות gcloud dataproc clusters create או gcloud dataproc clusters update.
| דגל של ה-CLI של gcloud | תיאור | רמת הפירוט של הערכים | ערך מינימלי | ערך מקסימלי |
|---|---|---|---|---|
--delete-max-idle1 |
האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות.
משך הזמן שחל מהרגע שבו האשכול הופך ללא פעיל אחרי שהוא נוצר או עודכן ונמצא במצב מוכן לשימוש, ועד הרגע שבו האשכול מתחיל להימחק. מציינים את משך הזמן בפורמט IntegerUnit, כאשר היחידה יכולה להיות s, m, h, d (שניות, דקות, שעות, ימים). דוגמה: 30m: 30 דקות מהרגע שבו האשכול הופך למצב סרק. |
שנייה אחת | 5 דקות | 14 ימים |
--no-delete-max-idle |
ההגדרה הזו רלוונטית רק לפקודת עדכון האשכול.
ביטול מחיקת האשכול לפי הגדרת הדגל הקודמת delete-max-idle. |
לא רלוונטי | לא רלוונטי | לא רלוונטי |
--delete-expiration-time2 |
האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות. השעה שבה מתחילים למחוק את האשכול בפורמט ISO 8601 של תאריך ושעה. כדי ליצור את התאריך והשעה בפורמט הנכון, אפשר להשתמש במחולל חותמות הזמן. לדוגמה, הערך 2017-08-22T13:31:48-08:00 מציין שעת תפוגה של 13:21:48 באזור הזמן UTC -8:00. | שנייה אחת | 10 דקות מהשעה הנוכחית | 14 ימים מהשעה הנוכחית |
--delete-max-age2 |
האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות.
משך הזמן מרגע שליחת הבקשה ליצירת האשכול ועד לרגע שבו מתחילה המחיקה של האשכול. מציינים את משך הזמן בפורמט IntegerUnit, כאשר היחידה יכולה להיות s, m, h, d (שניות, דקות, שעות, ימים). דוגמאות: "30m": 30 minutes from now;
"1d": 1 day from now. |
שנייה אחת | 10 דקות | 14 ימים |
--no-delete-max-age |
ההגדרה הזו רלוונטית רק לפקודת עדכון האשכול.
מבטל את המחיקה האוטומטית של האשכול לפי ההגדרה הקודמת של הדגל delete-max-age או delete-expiration-time. |
לא רלוונטי | לא רלוונטי | לא רלוונטי |
- אפשר להעביר את האפשרות
delete-max-idleעם האפשרותdelete-expiration-timeאוdelete-max-ageבבקשה ליצירה או לעדכון של האשכול. התנאי הראשון שיהפוך ל-true יגרום למחיקת האשכול. - אפשר להעביר את האפשרות
delete-expiration-timeאו את האפשרותdelete-max-ageלפקודה ליצירה או לעדכון של האשכול, אבל לא את שתיהן.
דוגמה ליצירת אשכול:
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --delete-expiration-time=TIME \ ... other flags ...
דוגמה לעדכון אשכול:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
API בארכיטקטורת REST
כדי ליצור או לעדכן ערכים של מחיקה מתוזמנת באשכול, צריך להגדיר את השדות והערכים של Dataproc API ClusterLifecycleConfig שמופיעים בטבלה הבאה כחלק מבקשת API של cluster.create או cluster.patch של שירות מנוהל ל-Apache Spark cluster.
| שדה API | תיאור | רמת הפירוט של הערכים | ערך מינימלי | ערך מקסימלי |
|---|---|---|---|---|
idleDeleteTtl1 |
האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות.
משך הזמן שחל מהרגע שבו האשכול הופך ללא פעיל אחרי שהוא נוצר או עודכן ונמצא במצב מוכן לשימוש, ועד הרגע שבו האשכול מתחיל להימחק. כשמעדכנים אשכול עם ערך חדש, הערך החדש צריך להיות גדול מהערך שהוגדר קודם.
מציינים משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, ומסיימים ב-s. דוגמה: 3.5s.
כדי לבטל ערך idleDeleteTtl שהוגדר בעבר, שולחים משך זמן ריק. |
שנייה אחת | 5 דקות | 14 ימים |
autoDeleteTime2 |
האפשרות הזו חלה על פקודות ליצירת אשכולות ולעדכון אשכולות.
השעה שבה מתחילים למחוק את האשכול. כשמעדכנים אשכול עם שעה חדשה,
השעה החדשה צריכה להיות מאוחרת יותר מהשעה שהוגדרה קודם. אם מעדכנים את הערך של autoDeleteTime לערך ריק, המחיקה האוטומטית הקיימת מבוטלת.צריך לציין חותמת זמן בפורמט RFC 3339 UTC 'זולו', עם דיוק של ננו-שניות. דוגמה: "2014-10-02T15:01:23.045123456Z". |
שנייה אחת | 10 דקות מהשעה הנוכחית | 14 ימים מהשעה הנוכחית |
autoDeleteTtl2 |
משך הזמן מרגע שליחת הבקשה ליצירה או לעדכון של האשכול ועד לרגע שבו האשכול מתחיל להימחק. כשמעדכנים אשכול,
מועד המחיקה המתוזמן החדש (המועד של בקשת העדכון בתוספת
המשך החדש) צריך להיות מאוחר יותר ממועד המחיקה של האשכול שהוגדר קודם. כדי לבטל ערך autoDeleteTtl שהוגדר בעבר, שולחים ערך ריק.
צריך לציין משך זמן בשניות עם עד תשע ספרות אחרי הנקודה, ולסיים ב-s.
דוגמה: 3.5s. |
שנייה אחת | 10 דקות | 14 ימים |
- אפשר להגדיר או לעדכן את
idleDeleteTtlואתautoDeleteTimeאו אתautoDeleteTtlבבקשה ליצירה או לעדכון של אשכול. התנאי הראשון שיהפוך ל-true יופעל כדי למחוק את האשכול. - אפשר להגדיר או לעדכן את
autoDeleteTimeאו אתautoDeleteTtlבבקשה, אבל לא את שניהם.
צפייה בהגדרות של אשכול מחיקה מתוזמנת
מסוףCloud de Confiance
- כדי לראות את ההגדרות של מחיקה מתוזמנת של אשכול, בוחרים את שם האשכול מתוך הדף Clusters של Managed Service for Apache Spark במסוף Cloud de Confiance .
- בדף הפרטים של האשכולות, בוחרים בכרטיסייה Configuration. כדי לראות את ההגדרות של מחיקה מתוזמנת, עוברים לרשימת ההגדרות של האשכול.
CLI של gcloud
אפשר להשתמש בפקודה gcloud dataproc clusters list כדי לוודא שהאפשרות 'מחיקה מתוזמנת' מופעלת באשכול.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
אפשר להשתמש בפקודה gcloud dataproc clusters describe כדי לבדוק את הגדרות המחיקה המתוזמנת של אשכול LifecycleConfig.
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
... lifecycleConfig: autoDeleteTime: '2018-11-28T19:33:48.146Z' idleDeleteTtl: 1800s idleStartTime: '2018-11-28T18:33:48.146Z' ...
הערכים autoDeleteTime ו-idleDeleteTtl הם ערכי ההגדרה של המחיקה המתוזמנת שהוגדרו באשכול.
Managed Service for Apache Spark יוצר את הערך idleStartTime, שהוא זמן ההתחלה האחרון של האשכול במצב סרק. Managed Service for Apache Spark מוחק את האשכול אם הוא נשאר במצב לא פעיל למשך idleStartTime +
idleDeleteTtl.
API בארכיטקטורת REST
אפשר לשלוח בקשת clusters.list כדי לוודא שהאפשרות 'מחיקה מתוזמנת' מופעלת באשכול.