בנושא הזה מוסבר איך להתקין מנהל התקן לאחסון של Container Storage Interface (CSI) באשכולות.
סקירה כללית
כברירת מחדל, ב-GKE ב-AWS מוקצים כרכים של EBS באמצעות StorageClass שמוגדר כברירת מחדל. אם עומסי העבודה שלכם צריכים להשתמש בסוג אחר של נפח אחסון, אתם יכולים להתקין מנהל התקן תואם של CSI כדי לקבל גישה אליו.
Container Storage Interface (CSI) הוא ממשק API סטנדרטי פתוח שמאפשר לעומסי עבודה של Kubernetes לגשת למערכות אחסון תואמות. בנוסף, CSI מאפשר שימוש בתכונות אחסון מודרניות כמו שינוי גודל וצילומי מצב.
אחרי שמתקינים מנהל התקן CSI, צריך ליצור StorageClass של Kubernetes. מגדירים את מנהל התקן ה-CSI כמנהל הקצאות (provisioner) עבור ה-StorageClass. אחר כך אפשר להגדיר את StorageClass כברירת מחדל או להגדיר את עומסי העבודה כך שישתמשו ב-StorageClass. דוגמה ליצירת StatefulSet עם StorageClass מותאם אישית מופיעה במאמר שימוש ב-StorageClasses עם עומסי עבודה.
התקנה של מנהל התקן CSI של ספק
ספקי אחסון אחראים לספק הוראות התקנה לדרייברים של CSI שלהם. אפשר לעיין ברשימה של מנהלי התקנים של CSI במסמכי התיעוד של CSI.
פועלים לפי הוראות ההתקנה של מנהל ההתקן של CSI, ואז ממשיכים לשלבים הבאים בדף הזה.
אימות ההתקנה של הדרייבר
אחרי שמתקינים מנהל התקן CSI, אפשר להריץ את הפקודות הבאות כדי לוודא שההתקנה בוצעה:
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
איך משתמשים ב-CSI driver
כדי להשתמש בדרייבר CSI:
יוצרים StorageClass בהתאמה אישית שמפנה לדרייבר בשדה
provisioner.כדי להקצות נפח אחסון, אפשר:
- מפנים אל StorageClass במפרט של StatefulSet
volumeClaimTemplates. - הגדרת סוג האחסון כברירת המחדל של האשכול.
- מפנים אל StorageClass במפרט של StatefulSet
שיקולים לגבי StorageClass שמגובה על ידי מנהל התקן CSI
כשיוצרים StorageClass, כדאי לקחת בחשבון את הנקודות הבאות:
כדאי לעיין במסמכי התיעוד של מנהל התקן ה-CSI כדי למצוא פרמטרים ספציפיים למנהל ההתקן שאתם מספקים ל-StorageClass, כולל שם ה-provisioner.
מומלץ לתת ל-StorageClass שם שמתאר את המאפיינים שלו (למשל
fastאוhighly-replicated), ולא שם שמתאר את שם הדרייבר או המכשיר הספציפיים שמאחוריו. כשנותנים ל-StorageClass שם לפי המאפיינים שלו, אפשר ליצור StorageClass עם אותו שם באשכולות ובסביבות שונות. לאחר מכן מגדירים את עומסי העבודה כך שישתמשו באותו StorageClass.
המאמרים הבאים
- יוצרים StorageClass שמפנה אל מנהל התקן CSI.