סקירה כללית על אחסון

אתם יוצרים אחסון מתמיד לעומסי עבודה שפועלים ב-GKE ב-Azure באמצעות אובייקטים של Kubernetes.

אחסון במישור הבקרה

כשיוצרים אשכול, GKE on Azure מקצה דיסקים מסוג Premium SSD LRS לנפחי האחסון של מישור הבקרה ושל etcd.

שימוש באחסון מתמיד בעומסי העבודה של GKE ב-Azure

ב-GKE ב-Azure, משתמשים במשאבי Kubernetes‏ PersistentVolume‏ (PV),‏ PersistentVolumeClaim‏ (PVC) ו-StorageClass כדי לספק אחסון קבצים ואחסון בלוקים קבוע לעומסי עבודה. אפשר ליצור תמונות מצב של אחסון מתמיד באמצעות המשאבים VolumeSnapshot ו-VolumeSnapshotClass. התמונות המיידיות מאוחסנות בחשבון Azure שלכם.

StorageClass

לאשכולות יש ברירת מחדל Kubernetes StorageClass שמקצה באופן דינמי אחסון עם שמירת מצב לעומסי עבודה (workloads) בנפחי Azure Disk Storage ‏(AzureDisk). אפשר גם להשתמש ב-StorageClass אחר כדי להקצות סוגים אחרים של נפחים. האפשרויות האלה מתוארות בסעיף הבא.

חשבונות אחסון ב-Azure

‫GKE on Azure יוצר באופן אוטומטי חשבון אחסון ב-Azure כשנוצר אשכול. אם רוצים להשתמש בחשבון אחסון ספציפי, צריך ליצור סוג אחסון בהתאמה אישית.

הגדרת אחסון באשכול

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

Azure Disk Storage ‏ (AzureDisk)

‫GKE ב-Azure מנהל נפחי Azure Disk באמצעות azuredisk-csi-driver.

גרסת מנהל ההתקן של CSI קשורה לגרסת Kubernetes ב-GKE ב-Azure. כשמשדרגים את גרסת האשכול, GKE on Azure מעדכן את גרסת הדרייבר באופן אוטומטי. הגרסה הזו היא בדרך כלל מנהל ההתקן העדכני ביותר שזמין בזמן שגרסת GKE ב-Azure יוצאת. אין תמיכה בסוג הנפח של Kubernetes מדור קודם kubernetes.io/azure-disk.

הדרייבר שמותקן מראש ב-GKE ב-Azure מספק את StorageClasses הבאים כברירת מחדל:

  • standard-rwo (ברירת מחדל): משמש להקצאת דיסקים סטנדרטיים של SSD Azure עם LRS
  • premium-rwo: משמש להקצאת דיסקים מסוג SSD Premium ב-Azure עם LRS

נפחי אחסון של Azure Disk תומכים במצב הגישה ReadWriteOnce של Kubernetes.

תמונות מצב של נפח

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

שיבוט של נפח אחסון

אפשר להשתמש בשיבוט של נפחי אחסון ב-CSI כדי לשבט נפחי אחסון קיימים של Azure Disk. מידע נוסף זמין בדוגמה של שיבוט נפח.

שינוי עוצמת הקול

אפשר לשנות את הגודל של כרכים לא מצורפים של Azure Disk באמצעות שינוי גודל הכרכים. מידע נוסף זמין בדוגמה לשינוי גודל נפח. שינוי גודל של אמצעי האחסון כשהוא מחובר ומוטמע אינו נתמך.

Azure shared disks

עבור עומסי עבודה שמיועדים לתיאום פעולות כתיבה לדיסק בלוקים משותף, GKE ב-Azure תומך בדיסקים משותפים ב-Azure. מידע נוסף זמין במאמר בנושא דיסק משותף(קריאה/כתיבה מרובת צמתים) במסמכי התיעוד של Azure disk CSI.

Azure File Storage (AzureFile)

‫GKE ב-Azure מנהל נפחי אחסון של Azure Files באמצעות azurefile-csi-driver

מנהל התקן ה-CSI קשור לגרסת Kubernetes של GKE ב-Azure. כשמשדרגים את גרסת האשכול, גרסת הדרייבר החדשה מוחלת באופן אוטומטי. הגרסה הזו היא בדרך כלל הדרייבר העדכני ביותר שזמין בזמן שגרסת GKE ב-Azure יוצאת. אין תמיכה בסוג הנפח של Kubernetes מדור קודם kubernetes.io/azure-file.

הדרייבר שמותקן מראש ב-GKE ב-Azure מספק את StorageClasses הבאים כברירת מחדל:

  • ‫standard-rwx: משמש להקצאת standard SSD Azure file shares עם LRS
  • ‫premium-rwx: משמש להקצאת premium SSD של שיתופי קבצים ב-Azure עם LRS

נפחי קבצים של Azure משתמשים במצב הגישה ReadWriteMany של Kubernetes.

תמונות מצב של נפח

אפשר להשתמש במשאב VolumeSnapshot כדי ליצור תמונות מצב של נפחי קבצים ב-Azure. מידע נוסף זמין במאמר בנושא התכונה Azure File Snapshot. כדי לשחזר תמונת מצב, משתמשים ב-Azure Portal. מידע נוסף זמין במאמר בנושא סקירה כללית של תמונות מצב של שיתופים ב-Azure Files.

שינוי עוצמת הקול

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

מנהלי התקנים נוספים לאחסון

אפשר להשתמש במערכות אחסון אחרות של צד שלישי עם GKE ב-Azure באמצעות מנהלי התקנים של Container Storage Interface ‏ (CSI) של צד שלישי (מומלץ) או באמצעות תוספים של נפחי אחסון ב-Kubernetes.

דרייברים של CSI

Container Storage Interface (CSI) הוא API בתקן פתוח שמאפשר ל-Kubernetes לצרף מערכות אחסון שרירותיות לעומסי עבודה מבוססי קונטיינרים. רשימה לא מלאה של מנהלי התקנים של CSI זמינה במסמכי התיעוד למפתחים של Kubernetes CSI. ‫GKE ב-Azure תומך ב-CSI v1.x.

כדי להשתמש בדרייבר CSI באשכול, צריך להתקין את דרייבר ה-CSI שסופק על ידי ספק האחסון. אחר כך אפשר להגדיר את עומסי העבודה כך שישתמשו ב-StorageClass של מנהל ההתקן או להגדיר אותו כברירת המחדל של StorageClass.

מנהלי התקנים של אחסון שספציפיים ל-Azure

אפשר להשתמש במנהלי אמצעי האחסון הבאים עם GKE ב-Azure:

‫GKE ב-Azure לא מנהל ישירות את אחסון Blob ב-Azure. אפשר להתקין ידנית את מנהל ההתקן של blob-csi-driver CSI, אבל Google לא מספקת תמיכה בנושא.

פלאגינים של נפחים בתוך העץ ב-Kubernetes

‫Kubernetes מגיעה עם תוספי נפח (built-in) בתוך העץ. רשימת מנהלי ההתקנים הנתמכים בתוך העץ:

  • configMap
  • emptyDir
  • hostPath
  • nfs
  • תחזית
  • סודות

מה השלב הבא?