Halaman ini menjelaskan cara menginstal penyimpanan Container Storage Interface (CSI) ke cluster yang dibuat menggunakan Google Distributed Cloud (khusus software) untuk VMware.
Ringkasan
CSI adalah API standar terbuka yang memungkinkan Kubernetes mengekspos sistem penyimpanan arbitrer ke workload dalam container. Saat Anda men-deploy penyimpanan yang kompatibel dengan CSI driver ke cluster, cluster dapat terhubung langsung ke penyimpanan yang kompatibel perangkat Anda tanpa harus melalui penyimpanan {i>vSphere<i}.
Volume Kubernetes dikelola oleh {i>driver<i} penyimpanan khusus vendor, yang memiliki secara historis menjadi dikompilasi ke dalam biner Kubernetes. Sebelumnya, Anda tidak dapat menggunakan driver penyimpanan yang tidak disertakan dengan Kubernetes. Menginstal driver CSI akan menambahkan dukungan untuk sistem penyimpanan yang tidak didukung secara native oleh Kubernetes. Selain itu, CSI juga memungkinkan penggunaan fitur penyimpanan modern, seperti snapshot dan pengubahan ukuran.
Untuk menggunakan driver CSI, Anda perlu membuat Kubernetes StorageClass Anda. Anda menetapkan driver CSI sebagai penyediaan untuk StorageClass. Selanjutnya, Anda dapat menetapkan StorageClass sebagai default cluster, atau mengonfigurasi workload Anda untuk menggunakan StorageClass (contoh StatefulSet).
Sebelum memulai
Secara default, Google Distributed Cloud menggunakan datastore vSphere menggunakan vsphereVolume {i>driver<i}. Selain itu, {i>driver<i} bawaan untuk NFS dan iSCSI dapat memasang dan memasang volume yang ada ke workload Anda.
Menginstal driver CSI vendor
Vendor penyimpanan mengembangkan {i>driver<i} CSI mereka sendiri, dan mereka bertanggung jawab untuk memberikan petunjuk penginstalan. Dalam kasus sederhana, penginstalan mungkin hanya melibatkan deployment manifes ke cluster Anda. Lihat daftar driver CSI dalam dokumentasi CSI.
Memverifikasi penginstalan driver
Setelah menginstal driver CSI, Anda dapat memverifikasi penginstalan dengan menjalankan perintah berikut:
kubectl get csidrivers --kubeconfig KUBECONFIG
Menggunakan driver CSI
Untuk menggunakan driver CSI:
Membuat StorageClass Kubernetes yang merujuk pada driver di kolom
provisioner
.Untuk menyediakan penyimpanan, Anda dapat:
- Mereferensikan StorageClass dalam spesifikasi
volumeClaimTemplates
untuk objek StatefulSet. - Menetapkannya sebagai StorageClass default cluster.
- Mereferensikan StorageClass dalam spesifikasi
Pertimbangan untuk StorageClasses yang didukung oleh driver CSI
Saat Anda membuat StorageClass, pertimbangkan hal berikut:
- Dokumentasi driver CSI harus mencakup parameter khusus pengemudi yang Anda berikan ke StorageClass, termasuk nama penyedia.
- Anda harus memberi nama StorageClass setelah propertinya, bukan setelah nama driver atau alat tertentu di belakangnya. Penamaan StorageClass setelah propertinya memungkinkan Anda membuat StorageClasses dengan nama yang sama di beberapa cluster dan lingkungan, dan memungkinkan aplikasi Anda mendapatkan penyimpanan dengan properti yang sama di seluruh cluster.
Contoh: Mereferensikan StorageClass dalam StatefulSet
Contoh berikut memodelkan cara menentukan driver CSI di StorageClass, dan kemudian mereferensikan StorageClass dalam StatefulSet sebagian besar workload standar dan berbasis cloud. Contoh ini mengasumsikan driver telah diinstal ke cluster.
Di bawah ini adalah StorageClass sederhana bernama premium-rwo
yang menggunakan driver CSI fiktif,
csi.example.com
, sebagai penyedianya:
fast-sc.yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: premium-rwo provisioner: csi.example.com # CSI driver parameters: # You provide vendor-specific parameters to this specification type: example-parameter # Be sure to follow the vendor's instructions datastore: my-datastore reclaimPolicy: Retain allowVolumeExpansion: true
Anda mereferensikan StorageClass dalam spesifikasi volumeClaimTemplates
StatefulSet.
Saat Anda mereferensikan StorageClass dalam volumeClaimTemplates
StatefulSet
, Kubernetes menyediakan penyimpanan yang stabil menggunakan PersistentVolumes (PV).
Kubernetes memanggil penyedia yang ditentukan dalam StorageClass untuk membuat volume penyimpanan baru. Dalam hal ini, Kubernetes memanggil penyedia csi.example.com
fiktif, yang memanggil API penyedia untuk membuat volume. Setelah
jika volume disediakan, Kubernetes otomatis membuat PV untuk mewakili
Storage.
Berikut adalah StatefulSet sederhana yang mereferensikan StorageClass:
statefulset.yaml
apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.k8s.io/nginx-slim:0.8 volumeMounts: - name: www mountPath: /usr/share/nginx/html volumeClaimTemplates: # This is the specification in which you reference the StorageClass - metadata: name: www spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi storageClassName: fast # This field references the existing StorageClass
Langkah selanjutnya
- Baca selengkapnya tentang konsep penyimpanan Google Distributed Cloud
- Menetapkan StorageClass default untuk cluster Anda