במאמר הזה מוסבר איך להשתמש במנהל ההתקן של ממשק האחסון בקונטיינרים (CSI) של vSphere עם Google Distributed Cloud.
סקירה כללית
מנהל ההתקן של vSphere CSI נפרס באופן אוטומטי כשמתקינים את תוכנת Google Distributed Cloud ל-VMware בלבד. במאמר התקנת מנהל התקן CSI מוסבר איך משתמשים במנהלי התקנים אחרים של CSI.
דרישות vSphere
כדי להשתמש במנהל ההתקן של vSphere CSI, צריך:
גרסה נתמכת של vCenter Server שמבוססת על Linux
הרחבת הנפח
כדי לבצע הרחבת נפח אופליין, צריך שגם vCenter Server וגם ESXi יהיו בגרסה 7.0 Update 1 ואילך.
כדי להרחיב את נפח האחסון אונליין, צריך להשתמש בגרסה 7.0 Update 2 ואילך של vCenter Server ושל ESXi.
תמונת מצב של אמצעי אחסון
כדי ליצור תמונת מצב של נפח, צריך שגם 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
הקצאת נפחים
כדי להקצות נפחים באמצעות מנהל ההתקן של vSphere CSI, מגדירים את השדה storageClassName של PersistentVolumeClaim לערך standard-rwo.
הגדרת סוג האחסון (storage class) שמוגדר כברירת מחדל
כדי להגדיר את standard-rwo כסוג האחסון שמוגדר כברירת מחדל, קראו את המאמר סוג האחסון שמוגדר כברירת מחדל.
שימוש בתמונת מצב לשחזור אמצעי אחסון
יצירת 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 לא נמחקים כשמוחקים אשכול משתמש. לפני שמוחקים את האשכול, צריך למחוק את כל ה-PVCs וה-StatefulSets. כדי למחוק את אמצעי האחסון, מריצים את הפקודה הבאה:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
מחליפים את MY_NAMESPACE ב-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