במאמר הזה מוסבר איך להשתמש בדרייבר של vSphere Container Storage Interface (CSI) עם Google Distributed Cloud.
סקירה כללית
מנהל ההתקן של vSphere CSI נפרס באופן אוטומטי כשמתקינים את Google Distributed Cloud (תוכנה בלבד) ל-VMware. מידע על שימוש במנהלי התקנים אחרים של CSI זמין במאמר בנושא התקנת מנהל התקן של CSI.
הדרישות של vSphere
כדי להשתמש בדרייבר vSphere CSI, צריך:
גרסה נתמכת של vCenter Server שמבוססת על Linux
הרחבת נפח
כדי לבצע הרחבת נפח אופליין, צריך ש-vCenter Server ו-ESXi יהיו בגרסה 7.0 Update 1 ואילך
כדי להרחיב את נפח האחסון אונליין, צריך ש-vCenter Server ו-ESXi יהיו בגרסה 7.0 Update 2 ואילך.
תמונת מצב של נפח
כדי ליצור תמונת מצב של נפח, צריך ש-vCenter Server ו-ESXi יהיו בגרסה 7.0 Update 3 ואילך.
Cns.Searchable
לחשבון המשתמש שלכם ב-vCenter צריכה להיות ההרשאה Cns.Searchable באובייקט הבסיס של vCenter.
אם אתם לא בטוחים אם החשבון שלכם עומד בדרישות המוקדמות של CSI, כדאי להריץ את הפקודה gkectl diagnose cluster לפני שמפעילים עומסי עבודה של CSI.
בדיקה שמנהל ההתקן מותקן
כשמנהל ההתקנים של vSphere CSI מותקן באשכול המשתמשים, נוצר StorageClass בשם standard-rwo.
מציגים רשימה של אובייקטים מסוג StorageClass:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
מחליפים את CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig של האשכול.
מוודאים שהתוצאה standard-rwo מופיעה בפלט. לדוגמה:
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
מוודאים שהדרייבר של vSphere CSI מותקן:
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \
-o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
הפלט צריך לציין שהדרייבר זמין בכל הצמתים של האשכול. לדוגמה:
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
מספר גדול של הקצאות
כדי להקצות נפחים באמצעות מנהל התקני ה-CSI של vSphere, צריך להגדיר את השדה storageClassName של PersistentVolumeClaim ל-standard-rwo.
הגדרת סוג האחסון (storage class) שמוגדר כברירת מחדל
כדי להגדיר את standard-rwo כסוג האחסון שמוגדר כברירת מחדל, אפשר לעיין במאמר בנושא סוג האחסון שמוגדר כברירת מחדל.
שימוש בתמונת מצב לשחזור נפח אחסון
איך משחזרים נפח מגיבוי Snapshot
יצירה של StorageClasses נוספים
אפשר ליצור עוד StorageClasses של vSphere CSI באשכול באמצעות הפרמטרים datastoreurl או storagepolicyname.
בדוגמה הבאה השתמשנו בפרמטר storagepolicyname:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gold parameters: csi.storage.k8s.io/fstype: ext4 storagepolicyname: "Gold Policy" provisioner: csi.vsphere.vmware.com
כדי למצוא את הערך הנכון של הפרמטר datastoreurl, מריצים את הפקודה הבאה:
govc datastore.info DATASTORE_NAME
מחליפים את DATASTORE_NAME בשם של מאגר הנתונים של vSphere.
משתמשים בערך של URL מהפלט של datastoreurl. דוגמה לפלט:
Name: DATASTORE_NAME Path: /DATACENTER_NAME/datastore/DATASTORE_NAME Type: VMFS URL: ds:///vmfs/volumes/5d864fa0-7f2184d4-8eb4-3cfdfe0ce9a0/ Capacity: 20479.8 GB Free: 10066.9 GB
ניקוי נפח האחסון
כשמוחקים אשכול משתמשים, אמצעי האחסון שהוקצו על ידי מנהל התקן vSphere CSI לא נמחקים. לפני שמוחקים את האשכול, צריך למחוק את כל ה-PVC ואת StatefulSets. כדי למחוק את אמצעי האחסון, מריצים את הפקודה הבאה:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
מחליפים את MY_NAMESPACE במרחב השמות של Kubernetes.
אם מחקתם אשכול משתמשים בלי למחוק את אמצעי האחסון שלו, תוכלו למצוא את אמצעי האחסון בממשק המשתמש של vSphere:
בוחרים מאגר נתונים.
עוברים אל Monitor (מעקב) > Cloud Native Storage (אחסון בענן) > Container Volumes (נפחי אחסון של קונטיינרים).
בקטע Details של כל נפח, אפשר לראות את השם של אשכול Kubernetes.
השבתת מנהל התקן vSphere CSI
כדי להסיר את התמיכה ב-vSphere CSI, מוסיפים את השורה הבאה להגדרות של אשכול המשתמשים:
# (Optional) Storage specification for the cluster storage: # To disable the vSphere CSI driver, set this to true. The value is set to false by default and # the vSphere CSI driver is enabled by default on vSphere version >= 6.7U3. vSphereCSIDisabled: true
המאמרים הבאים
- מידע נוסף על מושגי האחסון בענן ב-Google Distributed Cloud
- הגדרת StorageClass כברירת מחדל עבור האשכול