שימוש בדרייבר של vSphere Container Storage Interface

במאמר הזה מוסבר איך להשתמש במנהל ההתקן של ממשק האחסון בקונטיינרים (CSI) של vSphere עם Google Distributed Cloud.

סקירה כללית

מנהל ההתקן של vSphere CSI נפרס באופן אוטומטי כשמתקינים את תוכנת Google Distributed Cloud ל-VMware בלבד. במאמר התקנת מנהל התקן CSI מוסבר איך משתמשים במנהלי התקנים אחרים של CSI.

דרישות vSphere

כדי להשתמש במנהל ההתקן של vSphere CSI, צריך:

הרחבת הנפח

  • כדי לבצע הרחבת נפח אופליין, צריך שגם 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:

  1. בוחרים מאגר נתונים.

  2. עוברים אל Monitor ‏> Cloud Native Storage ‏> Container Volumes.

  3. בקטע 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

המאמרים הבאים