Volume Object Storage Service (OSS) menyediakan penyimpanan bersama dan persisten bagi aplikasi Anda untuk data tidak terstruktur seperti file gambar, audio, dan video. Data yang ditulis ke bucket OSS tetap tersedia untuk setiap pod yang memasang volume tersebut dan tetap ada meskipun pod direstart.
Latar Belakang
OSS adalah solusi penyimpanan cloud yang aman, hemat biaya, berkapasitas tinggi, dan sangat andal. OSS ideal untuk menyimpan data yang jarang dimodifikasi setelah ditulis, serta data tidak terstruktur seperti file gambar, audio, dan video. Untuk informasi lebih lanjut, lihat Ikhtisar penyimpanan.
Klien volume OSS
Volume OSS adalah jenis volume yang menggunakan klien Filesystem in Userspace (FUSE) untuk memasang penyimpanan objek sebagai sistem file lokal (FS). Dibandingkan dengan penyimpanan lokal tradisional dan penyimpanan blok, volume OSS memiliki beberapa keterbatasan kompatibilitas POSIX. Alibaba Cloud Container Compute Service (ACS) mendukung klien volume OSS berikut.
Kasus penggunaan | Klien | Tipe | Deskripsi |
Sebagian besar skenario, termasuk operasi baca/tulis dan konfigurasi izin pengguna. | FUSE | Mendukung sebagian besar operasi POSIX, termasuk penulisan append, penulisan acak, dan pengaturan izin pengguna. | |
Skenario read-only atau beban kerja yang hanya melibatkan penulisan append berurutan. Contohnya termasuk pelatihan dan inferensi model AI, pemrosesan big data, dan kendaraan otonom. | FUSE | Mendukung pembacaan penuh dan penulisan append berurutan. Ideal untuk skenario yang banyak membaca, seperti pelatihan dan inferensi model AI, pemrosesan big data, dan kendaraan otonom. Klien ini dapat meningkatkan performa pembacaan data secara signifikan. |
Sebelum memilih klien, pertimbangkan hal-hal berikut:
Pola baca/tulis tidak diketahui — Jika Anda tidak yakin tentang pola baca/tulis beban kerja Anda, gunakan ossfs 1.0. Klien ini menawarkan kompatibilitas POSIX yang lebih baik dan memastikan stabilitas operasional yang lebih tinggi untuk beban kerja Anda.
Jalur baca dan tulis yang dapat dipisahkan — Untuk skenario di mana operasi baca dan tulis dapat dipisahkan, misalnya ketika baca dan tulis tidak terjadi secara bersamaan atau menargetkan file yang berbeda (misalnya, menyimpan checkpoint atau logging persisten), gunakan volume terpisah. Misalnya, pasang jalur read-only menggunakan volume ossfs 2.0 dan jalur tulis menggunakan volume ossfs 1.0.
Daya komputasi yang diperlukan oleh ossfs 2.0 — ossfs 2.0 hanya mendukung daya komputasi GPU. Untuk menggunakan daya komputasi CPU, submit a ticket untuk meminta akses.
Metode pemasangan yang didukung oleh ossfs 2.0 — ACS hanya mendukung pemasangan volume statis ossfs 2.0 menggunakan kubectl.
Dukungan API POSIX
Tabel berikut membandingkan dukungan API POSIX antara ossfs 1.0 dan ossfs 2.0.
Kategori fitur | Operasi | ossfs 1.0 | ossfs 2.0 |
Operasi objek dasar |
| Didukung | Didukung |
Operasi objek dasar |
| Didukung | Didukung |
Operasi objek dasar |
| Didukung | Didukung |
Pembacaan dan penulisan file |
| Didukung | Didukung |
Pembacaan dan penulisan file |
| Mendukung penulisan acak (memerlukan cache disk) | Hanya mendukung penulisan berurutan (tidak memerlukan cache disk) |
Pembacaan dan penulisan file |
| Didukung (dapat dipotong menjadi ukuran apa pun) | Hanya mendukung pemotongan objek hingga panjang nol |
Operasi meta file |
| Didukung | Didukung |
Operasi meta file |
| Didukung | Didukung |
Operasi meta file |
| Didukung | Didukung |
Operasi direktori |
| Didukung | Didukung |
Operasi direktori |
| Didukung | Didukung |
Operasi direktori |
| Didukung | Didukung |
Izin dan atribut |
| Didukung | Didukung |
Izin dan atribut |
| Didukung | Tidak didukung |
Izin dan atribut |
| Didukung | Tidak didukung |
Izin dan atribut |
| Didukung | Didukung |
Fitur tambahan |
| Didukung | Tidak didukung |
Fitur tambahan |
| Didukung | Tidak didukung |
Fitur tambahan |
| Tidak didukung | Tidak didukung |
Tolok ukur performa
ossfs 2.0 memberikan peningkatan performa signifikan dibandingkan ossfs 1.0 dalam operasi baca/tulis berurutan dan pembacaan file kecil berkonkurensi tinggi.
Performa penulisan berurutan: Dalam skenario penulisan berurutan objek besar single-threaded, ossfs 2.0 memberikan bandwidth hampir 18 kali lipat dari ossfs 1.0.
Performa pembacaan berurutan: Dalam skenario pembacaan berurutan objek besar single-threaded atau multi-threaded (4 thread), ossfs 2.0 memberikan bandwidth lebih dari 3 kali lipat dari ossfs 1.0.
Performa pembacaan objek kecil konkuren: Dalam skenario pembacaan objek kecil berkonkurensi tinggi (128 thread), ossfs 2.0 memberikan bandwidth lebih dari 20 kali lipat dari ossfs 1.0.
Jika performa baca/tulis, seperti latensi atau throughput, tidak memenuhi ekspektasi Anda, lihat Praktik terbaik untuk menyetel performa volume OSS.
Prasyarat
Add-on managed-csiprovisioner telah diinstal di kluster ACS.
Buka halaman manajemen kluster ACS di Konsol ACS. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Operations > Add-ons. Pada tab Storage, periksa apakah managed-csiprovisioner telah diinstal.
Catatan
Catatan berikut terutama berlaku untuk skenario baca/tulis umum yang menggunakan klien ossfs 1.0. Klien ossfs 2.0 berfokus pada pembacaan dan hanya mendukung subset operasi POSIX.
ACS hanya mendukung volume OSS statis, bukan volume dinamis.
Hard link tidak didukung.
Anda tidak dapat memasang bucket yang kelas penyimpanannya adalah Archive, Cold Archive, atau Deep Cold Archive.
Penulisan acak atau append ke file akan membuat file baru secara lokal lalu mengunggah ulang ke server OSS. Karena sifat penyimpanan objek, perhatikan hal berikut:
Operasi rename untuk file dan direktori tidak bersifat atomik.
Hindari penulisan konkuren atau operasi seperti kompresi dan dekompresi langsung di direktori mount. Koordinasikan penulisan konkuren di sisi klien, misalnya dengan melakukan serialisasi penulisan yang menarget objek yang sama. Jika tidak, penulisan konkuren, kompresi, dan dekompresi di direktori mount dapat menyebabkan inkonsistensi data atau metadata, dan ACS tidak melindungi terhadap inkonsistensi semacam itu.
Secara default, operasi
readdirpada volume ossfs 1.0 mengirim banyak permintaanHeadObjectuntuk mengambil informasi ekstensi semua objek dalam direktori, yang dapat menurunkan performa ossfs secara keseluruhan di direktori dengan banyak file. Jika beban kerja Anda tidak sensitif terhadap atribut file seperti izin, Anda dapat mengaktifkan parameter-o readdir_optimizeuntuk meningkatkan performa. Untuk informasi lebih lanjut, lihat Optimasi readdir.
Buat bucket OSS dan dapatkan detailnya
Buat bucket OSS.
Login ke Konsol OSS. Di panel navigasi sebelah kiri, klik Buckets.
Klik Create Bucket.
Di panel Create Bucket, konfigurasikan parameter yang diperlukan lalu klik tombol Create.
Tabel berikut menjelaskan parameter utama. Untuk informasi lebih lanjut, lihat Buat bucket.
Parameter
Deskripsi
Bucket Name
Masukkan nama kustom. Nama bucket harus unik secara global di OSS dan tidak dapat diubah setelah dibuat. Ikuti persyaratan format yang ditampilkan di UI.
Region
Pilih Specific Region dan pilih wilayah yang sama dengan kluster ACS Anda. Hal ini memungkinkan pod di kluster mengakses bucket melalui jaringan internal.
(Opsional) Untuk memasang subdirektori dari bucket OSS, buat subdirektori tersebut terlebih dahulu.
Di halaman Buckets, klik nama bucket target.
Di halaman detail bucket, di panel navigasi sebelah kiri, pilih Object Management > Objects.
Klik Create Directory untuk membuat direktori di bucket sesuai kebutuhan.
Dapatkan endpoint bucket OSS.
Di halaman Buckets, klik nama bucket target.
Di halaman detail bucket, klik tab Overview. Di bagian Port, salin endpoint yang sesuai dengan penerapan Anda:
Jika bucket OSS dan kluster ACS berada di wilayah yang sama, salin titik akhir internal.
Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, salin titik akhir publik.
Dapatkan ID AccessKey dan Secret AccessKey untuk mengakses OSS. Untuk informasi lebih lanjut, lihat Dapatkan pasangan AccessKey.
Jika Anda perlu memasang bucket OSS yang dimiliki oleh akun Alibaba Cloud lain, Anda harus mendapatkan pasangan AccessKey dari akun tersebut.
Pasang volume OSS
Pilih tab untuk klien yang Anda pilih. Setiap prosedur membuat Persistent Volume (PV) dan Persistent Volume Claim (PVC), lalu memasang volume tersebut di aplikasi.
Volume ossfs 1.0
kubectl
Langkah 1: Buat PV
Simpan konten YAML berikut sebagai
oss-pv.yaml.apiVersion: v1 kind: Secret metadata: name: oss-secret namespace: default stringData: akId: <your AccessKey ID> akSecret: <your AccessKey Secret> --- apiVersion: v1 kind: PersistentVolume metadata: name: oss-pv labels: alicloud-pvname: oss-pv spec: storageClassName: test capacity: storage: 20Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-pv nodePublishSecretRef: name: oss-secret namespace: default volumeAttributes: bucket: "<your OSS Bucket Name>" url: "<your OSS Bucket Endpoint>" otherOpts: "-o umask=022 -o allow_other"CatatanYAML ini membuat Secret dan PV. Secret menyimpan pasangan AccessKey Anda, yang digunakan PV untuk akses aman. Ganti nilai
akIddanakSecretdengan ID AccessKey dan Secret AccessKey aktual Anda.Tabel berikut menjelaskan parameter PV:
Parameter
Deskripsi
alicloud-pvnameLabel PV, digunakan untuk mengikatnya ke PVC.
storageClassNameNilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada.
storageKapasitas volume OSS. Kapasitas yang ditentukan untuk volume OSS statis hanya bersifat deklaratif. Kapasitas aktual tidak dibatasi, dan kapasitas yang tersedia didasarkan pada penggunaan yang ditampilkan di Konsol OSS.
accessModesMode akses. Nilai yang valid:
ReadOnlyMany, yang memungkinkan beberapa pod memasang volume sebagai read-only, danReadWriteMany, yang memungkinkan beberapa pod memasang volume sebagai read-write.persistentVolumeReclaimPolicyKebijakan reclaim PV.
driverTipe driver. Atur ke
ossplugin.csi.alibabacloud.comuntuk menggunakan plugin Alibaba Cloud OSS Container Storage Interface (CSI).volumeHandleUID (identifier unik) PV. Ini harus sama dengan
metadata.name.nodePublishSecretRefMerujuk ke Secret yang berisi pasangan AccessKey untuk otorisasi.
bucketNama bucket OSS. Ganti nilai
bucketdengan nama bucket OSS aktual Anda.urlEndpoint bucket OSS. Ganti nilai
urldengan endpoint aktual bucket OSS Anda.Jika bucket OSS dan kluster ACS berada di wilayah yang sama, gunakan titik akhir internal. Misalnya,
oss-cn-shanghai-internal.aliyuncs.com.Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, gunakan titik akhir publik. Misalnya,
oss-cn-shanghai.aliyuncs.com.
otherOptsMenentukan opsi pemasangan kustom untuk volume OSS dalam format
-o *** -o ***. Misalnya,-o umask=022 -o max_stat_cache_size=100000 -o allow_other.Buat Secret dan PV.
kubectl create -f oss-pv.yamlLihat PV.
kubectl get pvOutput yang diharapkan:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE oss-pv 20Gi RWX Retain Available test <unset> 9s
Langkah 2: Buat PVC
Simpan konten YAML berikut sebagai oss-pvc.yaml.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: oss-pvc spec: storageClassName: test accessModes: - ReadWriteMany resources: requests: storage: 20Gi selector: matchLabels: alicloud-pvname: oss-pvTabel berikut menjelaskan parameter:
Parameter
Deskripsi
storageClassNameNilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada. Nilai ini harus sama dengan
spec.storageClassNamePV.accessModesMode akses.
storageJumlah penyimpanan yang diminta. Nilai ini tidak boleh lebih besar dari kapasitas PV.
alicloud-pvnameLabel PV yang akan diikat. Nilai ini harus sama dengan
metadata.labels.alicloud-pvnamePV.Buat PVC.
kubectl create -f oss-pvc.yamlLihat PVC.
kubectl get pvcOutput yang diharapkan menunjukkan bahwa PVC telah diikat ke PV yang dibuat di Langkah 1.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE oss-pvc Bound oss-pv 20Gi RWX test <unset> 6s
Langkah 3: Buat aplikasi dan pasang volume
Buat file bernama oss-test.yaml dengan konten berikut.
Contoh YAML berikut membuat Deployment dengan dua pod. Kedua pod meminta penyimpanan menggunakan PVC bernama
oss-pvc, dan jalur mount keduanya adalah/data.apiVersion: apps/v1 kind: Deployment metadata: name: oss-test labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-oss mountPath: /data volumes: - name: pvc-oss persistentVolumeClaim: claimName: oss-pvcBuat Deployment dan pasang volume OSS.
kubectl create -f oss-test.yamlPeriksa status pod di Deployment.
kubectl get pod | grep oss-testOutput contoh menunjukkan bahwa dua pod telah dibuat.
oss-test-****-***a 1/1 Running 0 28s oss-test-****-***b 1/1 Running 0 28sPeriksa jalur mount.
Perintah berikut mencantumkan data di titik mount bucket OSS. Secara default, outputnya kosong.
kubectl exec oss-test-****-***a -- ls /data
Konsol
Langkah 1: Buat PV
Login ke Konsol ACS.
Di halaman Clusters, klik nama kluster untuk membuka halaman manajemen kluster.
-
Di panel navigasi sebelah kiri halaman manajemen kluster, pilih .
-
Di halaman Persistent Volumes, klik Create.
Di kotak dialog Create, konfigurasikan parameter lalu klik tombol Create.
Parameter
Deskripsi
Contoh
PV Type
Tipe volume. Pilih OSS.
OSS
Volume Name:
Nama PV. Tentukan nama kustom sesuai persyaratan format yang ditampilkan di UI.
oss-pv
Capacity
Kapasitas volume OSS. Kapasitas yang ditentukan untuk volume OSS statis hanya bersifat deklaratif. Kapasitas aktual tidak dibatasi, dan kapasitas yang tersedia didasarkan pada penggunaan yang ditampilkan di Konsol OSS.
20Gi
Access Mode
Mode akses. Pilih opsi berdasarkan kebutuhan Anda:
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh beberapa pod.
ReadWriteMany: Volume dapat dipasang sebagai read-write oleh beberapa pod.
ReadWriteMany
Access Certificate
Untuk keamanan, simpan informasi AccessKey dalam Secret. Contoh ini menggunakan opsi Create Secret.
Create Secret
namespace: default
Name: oss-secret
AccessKey ID: ********
AccessKey Secret: ********
Bucket ID:
Pilih bucket OSS.
oss-acs-***
OSS Path
Direktori yang akan dipasang. Secara default adalah direktori root (
/). Jika Anda menentukan subdirektori, seperti/dir, pastikan direktori tersebut ada./
Endpoint:
Endpoint bucket OSS.
Jika bucket OSS dan kluster ACS berada di wilayah yang sama, pilih opsi Internal Endpoint.
Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, pilih opsi Public Endpoint.
Private Endpoint
Setelah PV dibuat, Anda dapat melihat informasinya di halaman Persistent Volumes. PV belum diikat ke PVC.
Langkah 2: Buat PVC
-
Di panel navigasi sebelah kiri halaman manajemen kluster, pilih .
-
Di halaman Persistent Volume Claims, klik Create.
Di kotak dialog yang muncul, konfigurasikan parameter lalu klik tombol Create.
Parameter
Deskripsi
Contoh
PVC Type
Tipe volume. Pilih OSS.
OSS
Name
Nama PVC. Tentukan nama kustom sesuai persyaratan format yang ditampilkan di UI.
oss-pvc
Allocation Mode
Mode alokasi. Pilih opsi Existing Volumes.
Existing PV
Existing Volumes
Pilih PV yang telah Anda buat.
oss-pv
Capacity
Jumlah penyimpanan yang diminta. Nilai ini tidak boleh melebihi kapasitas PV.
20Gi
Setelah PVC dibuat, Anda dapat melihatnya di halaman Persistent Volume Claims. PVC kini telah diikat ke PV (volume OSS).
Langkah 3: Buat aplikasi dan pasang volume
-
Di panel navigasi sebelah kiri halaman manajemen kluster, pilih .
Di halaman Deployments, klik tombol Create from Image.
Konfigurasikan parameter untuk Deployment lalu klik tombol Create.
Tabel berikut menjelaskan parameter utama. Pertahankan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat Deployment.
Bagian
Parameter
Deskripsi
Contoh
Basic Information
Application Name
Nama Deployment. Tentukan nama kustom sesuai persyaratan format yang ditampilkan di UI.
oss-test
Basic Information
Replicas:
Jumlah replika (pod) untuk Deployment.
2
Container
Image Name
Alamat image yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Container
Required Resources
Atur sumber daya vCPU dan memori yang diperlukan.
0.25 vCPU, 0.5 GiB
Volume
Add PVC
Klik tombol dan konfigurasikan parameter:
Mount Source: Pilih PVC yang telah Anda buat.
Container Path: Masukkan jalur kontainer tempat Anda ingin memasang bucket OSS.
Mount source: oss-pvc
Container path: /data
Periksa status Deployment aplikasi.
Di halaman Deployments, klik nama aplikasi.
Di tab Pods, pastikan pod berada dalam status Running.
Volume ossfs 2.0
ACS hanya mendukung pemasangan volume statis ossfs 2.0 menggunakan kubectl.
Langkah 1: Buat PV
Simpan konten YAML berikut sebagai
oss-pv.yaml.apiVersion: v1 kind: Secret metadata: name: oss-secret namespace: default stringData: akId: <your AccessKey ID> akSecret: <your AccessKey Secret> --- apiVersion: v1 kind: PersistentVolume metadata: name: oss-pv labels: alicloud-pvname: oss-pv spec: storageClassName: test capacity: storage: 20Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-pv nodePublishSecretRef: name: oss-secret namespace: default volumeAttributes: fuseType: ossfs2 # Secara eksplisit menentukan klien ossfs 2.0 bucket: "<your OSS Bucket Name>" url: "<your OSS Bucket Endpoint>" otherOpts: "-o close_to_open=false" # Catatan: Opsi pemasangan yang didukung tidak kompatibel dengan klien ossfs 1.0.CatatanYAML ini membuat Secret dan PV. Secret menyimpan pasangan AccessKey Anda, yang digunakan PV untuk akses aman. Ganti nilai
akIddanakSecretdengan ID AccessKey dan Secret AccessKey aktual Anda.Tabel berikut menjelaskan parameter PV:
Parameter
Deskripsi
alicloud-pvnameLabel PV, digunakan untuk mengikatnya ke PVC.
storageClassNameNilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada.
storageKapasitas volume OSS. Kapasitas yang ditentukan untuk volume OSS statis hanya bersifat deklaratif. Kapasitas aktual tidak dibatasi, dan kapasitas yang tersedia didasarkan pada penggunaan yang ditampilkan di Konsol OSS.
accessModesMode akses. Nilai yang valid:
ReadOnlyMany, yang memungkinkan beberapa pod memasang volume sebagai read-only, danReadWriteMany, yang memungkinkan beberapa pod memasang volume sebagai read-write.persistentVolumeReclaimPolicyKebijakan reclaim PV.
driverTipe driver. Atur ke
ossplugin.csi.alibabacloud.comuntuk menggunakan plugin Alibaba Cloud OSS Container Storage Interface (CSI).volumeHandleUID (identifier unik) PV. Ini harus sama dengan
metadata.name.nodePublishSecretRefMerujuk ke Secret yang berisi pasangan AccessKey untuk otorisasi.
fuseTypeHarus
ossfs2untuk klien ossfs 2.0.bucketNama bucket OSS. Ganti nilai
bucketdengan nama bucket OSS Anda.urlEndpoint bucket OSS. Ganti nilai
urldengan endpoint aktual bucket OSS Anda.Jika bucket OSS dan kluster ACS berada di wilayah yang sama, gunakan titik akhir internal. Misalnya,
oss-cn-shanghai-internal.aliyuncs.com.Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, gunakan titik akhir publik. Misalnya,
oss-cn-shanghai.aliyuncs.com.
otherOptsMenentukan opsi pemasangan kustom untuk volume OSS dalam format
-o *** -o ***. Misalnya,-o close_to_open=false.close_to_open: Dinonaktifkan secara default. Jika Anda mengaktifkannya, sistem akan mengirim permintaan GetObjectMeta ke OSS setiap kali file dibuka. Ini mengambil metadata terbaru dan menjaganya tetap mutakhir. Namun, dalam skenario yang melibatkan pembacaan banyak file kecil, kueri metadata yang sering dapat meningkatkan latensi secara signifikan.Untuk informasi lebih lanjut tentang parameter opsional, lihat Opsi pemasangan ossfs 2.0.
Buat Secret dan PV.
kubectl create -f oss-pv.yamlLihat PV.
kubectl get pvOutput yang diharapkan:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE oss-pv 20Gi RWX Retain Available test <unset> 9s
Langkah 2: Buat PVC
Simpan konten YAML berikut sebagai oss-pvc.yaml.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: oss-pvc spec: storageClassName: test accessModes: - ReadWriteMany resources: requests: storage: 20Gi selector: matchLabels: alicloud-pvname: oss-pvTabel berikut menjelaskan parameter:
Parameter
Deskripsi
storageClassNameNilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada. Nilai ini harus sama dengan
spec.storageClassNamePV.accessModesMode akses.
storageJumlah penyimpanan yang diminta. Nilai ini tidak boleh lebih besar dari kapasitas PV.
alicloud-pvnameLabel PV yang akan diikat. Nilai ini harus sama dengan
metadata.labels.alicloud-pvnamePV.Buat PVC.
kubectl create -f oss-pvc.yamlLihat PVC.
kubectl get pvcOutput yang diharapkan menunjukkan bahwa PVC telah diikat ke PV yang dibuat di Langkah 1.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE oss-pvc Bound oss-pv 20Gi RWX test <unset> 6s
Langkah 3: Buat aplikasi dan pasang volume
Buat file bernama
oss-test.yamldengan konten berikut.Contoh YAML berikut membuat Deployment dengan dua pod. Kedua pod meminta penyimpanan menggunakan PVC bernama
oss-pvc, dan jalur mount keduanya adalah/data.apiVersion: apps/v1 kind: Deployment metadata: name: oss-test labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-oss mountPath: /data volumes: - name: pvc-oss persistentVolumeClaim: claimName: oss-pvcBuat Deployment dan pasang volume OSS.
kubectl create -f oss-test.yamlPeriksa status pod di Deployment.
kubectl get pod | grep oss-testOutput contoh menunjukkan bahwa dua pod telah dibuat.
oss-test-****-***a 1/1 Running 0 28s oss-test-****-***b 1/1 Running 0 28sPeriksa jalur mount.
Perintah berikut mencantumkan data di titik mount bucket OSS. Secara default, outputnya kosong.
kubectl exec oss-test-****-***a -- ls /data
Verifikasi penyimpanan bersama dan penyimpanan persisten OSS
Deployment yang dibuat pada contoh sebelumnya berisi dua pod. Kedua pod memasang bucket OSS yang sama. Anda dapat memverifikasi penyimpanan bersama dan penyimpanan persisten sebagai berikut:
Untuk memverifikasi penyimpanan bersama, buat file di salah satu pod lalu periksa apakah file tersebut terlihat di pod lain.
Untuk memverifikasi penyimpanan persisten, restart Deployment lalu periksa apakah data asli masih dapat diakses dari pod baru.
Dapatkan informasi pod.
kubectl get pod | grep oss-testOutput contoh:
oss-test-****-***a 1/1 Running 0 40s oss-test-****-***b 1/1 Running 0 40sVerifikasi penyimpanan bersama.
Buat file di salah satu pod.
Contoh ini menggunakan pod bernama
oss-test-****-***a.kubectl exec oss-test-****-***a -- touch /data/test.txtPeriksa keberadaan file di pod lain.
Contoh ini menggunakan pod bernama
oss-test-****-***b.
kubectl exec oss-test-****-***b -- ls /dataOutput ini mengonfirmasi bahwa file
test.txtdibagikan.test.txtVerifikasi penyimpanan persisten.
Mulai ulang Penyebaran.
kubectl rollout restart deploy oss-testPeriksa status pod dan tunggu hingga pod baru memasuki status Running.
kubectl get pod | grep oss-testOutput contoh:
oss-test-****-***c 1/1 Running 0 67s oss-test-****-***d 1/1 Running 0 49sDi salah satu pod baru, periksa apakah data di sistem file masih ada.
Contoh ini menggunakan pod bernama
oss-test-****-***c.kubectl exec oss-test-****-***c -- ls /dataOutput ini mengonfirmasi bahwa data di bucket OSS tetap ada dan dapat diakses dari direktori mount pod baru.
test.txt