Storage

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

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

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

StorageClass

באשכולות משתמשים יש ברירת מחדל של Kubernetes StorageClass שמקצה באופן דינמי אחסון עם שמירת מצב (stateful) לעומסי עבודה בנפחי AWS Elastic Block Storage ‏(EBS). אפשר גם להשתמש ב-StorageClass אחר כדי להקצות סוגים אחרים של נפחים. האפשרויות האלה מתוארות בסעיף הבא.

VolumeSnapshotClass

למשתמשים באשכולות יש ברירת מחדל של Kubernetes VolumeSnapshotClass שיוצרת תמונות מצב של אחסון עם שמירת מצב בנפחי אחסון של AWS Elastic Block Storage ‏ (EBS).

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

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

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

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

Elastic Block Storage (EBS)‎

‫GKE ב-AWS מנהל את אמצעי האחסון של AWS EBS באמצעות aws-ebs-csi-driver.

גרסת מנהל ההתקן של EBS CSI קשורה לגרסת Kubernetes של GKE ב-AWS. כשמשדרגים את הגרסה של אשכול המשתמשים, הגרסה החדשה של מנהל ההתקן מוחלת באופן אוטומטי. הגרסה הזו היא בדרך כלל מנהל ההתקן העדכני ביותר שזמין בזמן שחרור הגרסה של GKE ב-AWS.

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

  • standard-rwo (ברירת מחדל): משמש להקצאת נפחי EBS gp2.
  • premium-rwo: משמש להקצאת נפחי אחסון של EBS io1.

נפחי EBS תומכים במצב הגישה ReadWriteOnce של Kubernetes.

כרכים קיימים של EBS

אתם יכולים להקצות נפחי EBS קיימים בעומסי העבודה של GKE ב-AWS. במאמר ייבוא של נפח EBS קיים יש דוגמאות לשימוש בנפחי EBS ב-GKE ב-AWS.

Elastic File System ‏ (EFS)

‫GKE ב-AWS מגרסה 1.6 ואילך תומך בטעינה של מערכות קבצים קיימות של AWS EFS ונקודות גישה. מידע נוסף מפורט במאמר בנושא שימוש ב-EFS.

אפשרויות אחסון נוספות

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

דרייברים של CSI

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

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

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

אפשר להשתמש במניעי הנפח הבאים עם GKE ב-AWS.

‫FSx for Lustre ‏ (FSX)

‫GKE ב-AWS לא מנהל נפחי אחסון של FSx באופן ישיר. אפשר להתקין ידנית את aws-fsx-csi-driver, אבל Google לא מספקת תמיכה בנושא.

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

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

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

מה השלב הבא?