בדף הזה נסביר איך להגדיר מדיניות מחזור חיים של אובייקטים לקטגוריות אחסון מבודדות (air-gapped) ב-Google Distributed Cloud (GDC).
לפני שמתחילים
קטגוריות אחסון הן משאבים שמוגבלים לפרויקט ספציפי. הפרויקט משמש כמאגר שמקבץ את הדליים ומאפשר לנהל אותם באמצעות שרת Management API. כדי לבצע את הפעולות בדף הזה, צריך ליצור פרויקט חדש או לבחור פרויקט קיים שיש לכם בו הרשאות מספיקות.
התפקידים שצריך ב-IAM
פנו לאדמין של פרויקט IAM כדי לבקש את התפקידים הבאים במרחב השמות של הפרויקט:
- אדמין של קטגוריות בפרויקט (
project-bucket-admin): יצירה, עדכון ומחיקה של קטגוריות אחסון. - Project Bucket Object Viewer (
project-bucket-object-viewer): צפייה בפרטים של קטגוריות ואובייקטים באחסון ובדיקתם.
מידע נוסף זמין במאמר בנושא מתן גישה לקטגוריות.
הכנת הסביבה
כדי להריץ פקודות מול שרת ה-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/"
כל עדכון במדיניות מחזור החיים חל על האובייקטים הקיימים ועל האובייקטים שמועלים אחרי העדכון.
אם בקטגוריה מוגדר גם נעילת אובייקטים, האובייקטים מוגנים מפני תפוגה לפני סיום תקופת השמירה.