מדיניות מחזור החיים של אובייקטים ב-Google Distributed Cloud (GDC) עם air gap מאפשרת לכם להגדיר אוטומציה של שמירת נתונים ותפוגה בקטגוריות האחסון. אתם יכולים להגדיר כללים לגבי גיל, קידומת ותג כדי למחוק אובייקטים ללא גרסאות, או להעביר גרסאות ולגרום להן לפוג בלי ניקוי ידני.
לפני שמתחילים
קטגוריות אחסון הן משאבים שמוגדרים ברמת הפרויקט. הפרויקט פועל כמאגר, מקבץ את הקטגוריות ומאפשר לנהל אותן דרך שרת Management API. כדי לבצע את הפעולות שבדף הזה, צריך ליצור פרויקט חדש או לבחור פרויקט קיים שיש לכם בו הרשאות מתאימות.
התפקידים שצריך ב-IAM
כדי לבקש את התפקידים הבאים במרחב השמות של הפרויקט, פנו לאדמין של הפרויקט ב-IAM:
- אדמין של קטגוריות בפרויקט (
project-bucket-admin): יצירה, עדכון ומחיקה של קטגוריות אחסון. - צפייה באובייקטים בקטגוריות של פרויקטים (
project-bucket-object-viewer): צפייה בפרטים של קטגוריות ואובייקטים באחסון ובדיקה שלהם.
מידע נוסף זמין במאמר מתן גישה לקטגוריה.
הכנת הסביבה
כדי להריץ פקודות בשרת ה-Management API או בשרת ה-API הגלובלי:
- אם אין לכם קובץ kubeconfig לשרת ה-API של הניהול האזורי, נכנסים לחשבון ויוצרים קובץ כזה.
- לקטגוריות בשני אזורים:
- מוודאים מול מפעיל התשתית (IO) שהמשאב המותאם אישית
BucketLocationConfigנוצר בשביל האזורים המשויכים. - יוצרים את הקובץ kubeconfig לשרת ה-API הגלובלי.
- מוודאים מול מפעיל התשתית (IO) שהמשאב המותאם אישית
הגדרת מדיניות בנושא מחזור החיים של אובייקט בקטגוריה
אתם יכולים להשתמש במדיניות מחזור החיים של אובייקטים כדי לנהל באופן אוטומטי אובייקטים בקטגוריות שלכם. כך תוכלו לאחסן נתונים בצורה יעילה יותר לאורך כל מחזור החיים שלהם. הגדרת מחזור חיים היא רשימה של כללים שקובעים מתי יפוג התוקף של קבוצת אובייקטים, על סמך קריטריונים מסוימים להתאמה.
אפשר ליצור קטגוריה עם או בלי מדיניות מחזור חיים של אובייקטים. אחרי שיוצרים את הקטגוריה, אפשר להחיל מדיניות חדשה, לעדכן מדיניות קיימת או להסיר מדיניות קיימת של מחזור חיים.
בקטגוריות ללא ניהול גרסאות, המשמעות של תפוגה היא הסרה סופית של האובייקט באופן אסינכרוני.
בקטגוריות עם ניהול גרסאות, אם גרסת האובייקט הנוכחית היא לא סמן מחיקה, התפוגה הופכת את הגרסה הנוכחית ללא עדכנית, ואז מוסיפה סמן מחיקה לגרסה הנוכחית.
כדי להגדיר ולשנות את מדיניות מחזור החיים של האובייקט, מעדכנים את השדה Bucket.spec.bucketPolicy.lifecyclePolicy.
CLI
הדוגמאות הבאות מציגות כמה משאבי קטגוריות עם מדיניות שונה של מחזור חיים של אובייקטים:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire all objects after 365 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
days: 365
id: expire-all-after-365-days
status: Enabled
---
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire objects in the logs/ directory after 30 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
days: 30
id: expire-logs-dir-after-30-days
status: Enabled
filter:
prefixFilter: "logs/"
---
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire objects having specific tag after 30 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
days: 30
id: expire-tagged-objects-after-30-days
status: Enabled
filter:
tagFilters:
- key: environment
value: dev
---
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire noncurrent versions after 90 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- noncurrentExpiration:
noncurrentDays: 90
id: expire-noncurrent-after-90-days
status: Enabled
---
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire objects on a specific date"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
date: "2027-01-01T00:00:00Z"
id: expire-on-specific-date
status: Enabled
---
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with multiple lifecycle rules and advanced filters"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
# Rule 1: Expire objects in 'tmp/' directory AND tagged with 'status=ready' after 7 days
- expiration:
days: 7
id: expire-ready-tmp-objects
status: Enabled
filter:
prefixFilter: "tmp/"
tagFilters:
- key: status
value: ready
# Rule 2: Expire all objects in 'logs/' directory after 90 days
- expiration:
days: 90
id: expire-logs-after-90-days
status: Enabled
filter:
prefixFilter: "logs/"
כל עדכון במדיניות מחזור החיים חל על האובייקטים הקיימים ועל האובייקטים שיועלו אחרי העדכון.
אם בקטגוריה מוגדרת גם נעילת אובייקטים, האובייקטים מוגנים מפני תפוגה לפני סיום ימי השמירה.