Jika aplikasi Anda perlu menyimpan data tidak terstruktur, seperti gambar, file audio, dan file video, Anda dapat memasang volume Object Storage Service (OSS) ke aplikasi sebagai volume persisten (PV). Topik ini menjelaskan cara memasang volume OSS yang disediakan secara statis ke aplikasi serta memverifikasi bahwa volume tersebut dapat digunakan untuk berbagi dan menyimpan data secara persisten.
Informasi latar belakang
OSS adalah layanan penyimpanan cloud yang aman, hemat biaya, berkapasitas tinggi, dan sangat andal yang disediakan oleh Alibaba Cloud. OSS cocok untuk menyimpan data tidak terstruktur yang jarang dimodifikasi, seperti gambar, file audio, dan file video. Untuk informasi selengkapnya, lihat Ikhtisar penyimpanan.
Klien volume OSS
Volume OSS dapat dipasang secara lokal sebagai sistem file menggunakan klien berbasis Filesystem in Userspace (FUSE). Dibandingkan dengan penyimpanan lokal tradisional dan penyimpanan blok, klien berbasis FUSE memiliki beberapa keterbatasan dalam hal kompatibilitas POSIX. ACS mendukung klien volume OSS berikut.
Skenario | Klien | Tipe | Deskripsi |
Sebagian besar skenario, seperti operasi baca/tulis atau skenario yang memerlukan konfigurasi izin pengguna. | FUSE | Mendukung sebagian besar operasi POSIX, termasuk penulisan tambahan (append writes), penulisan acak (random writes), dan pengaturan izin pengguna. | |
Skenario read-only atau penulisan hanya tambahan berurutan (sequential append-only write), seperti pelatihan AI, inferensi, pemrosesan big data, dan kendaraan otonom. | FUSE | Mendukung pembacaan penuh dan penulisan tambahan berurutan. Cocok untuk skenario intensif membaca, seperti pelatihan AI, inferensi, pemrosesan big data, dan kendaraan otonom, serta dapat meningkatkan kinerja pembacaan data secara signifikan. ossfs 2.0 saat ini hanya mendukung daya komputasi GPU. Untuk menggunakan daya komputasi CPU, kirim tiket untuk mengajukan permohonan. |
Jika Anda tidak yakin tentang model baca dan tulis aplikasi Anda, gunakan ossfs 1.0. ossfs 1.0 menawarkan kompatibilitas POSIX yang lebih baik dan memastikan operasi aplikasi yang stabil.
Untuk skenario di mana operasi baca dan tulis dapat dipisahkan—misalnya, ketika operasi baca dan tulis tidak dilakukan secara bersamaan atau dilakukan pada file yang berbeda (seperti untuk penyimpanan breakpoint atau log persisten)—Anda dapat menggunakan volume yang berbeda. Misalnya, gunakan volume ossfs 2.0 untuk memasang jalur read-only dan volume ossfs 1.0 untuk memasang jalur tulis.
Dukungan API POSIX
Tabel berikut menjelaskan dukungan terhadap API POSIX umum yang disediakan oleh ossfs 1.0 dan ossfs 2.0.
Dukungan API POSIX
Tolok ukur kinerja
ossfs 2.0 memberikan peningkatan kinerja signifikan dibandingkan ossfs 1.0 dalam pembacaan dan penulisan berurutan serta pembacaan file kecil secara konkuren.
Kinerja penulisan berurutan: Untuk penulisan berurutan single-threaded file besar, ossfs 2.0 memberikan bandwidth hampir 18× dari ossfs 1.0.
Kinerja pembacaan berurutan
Untuk pembacaan berurutan single-threaded file besar, ossfs 2.0 memberikan bandwidth sekitar 8,5× dari ossfs 1.0.
Untuk pembacaan berurutan multi-threaded (4 thread) file besar, ossfs 2.0 memberikan bandwidth lebih dari 5× dari ossfs 1.0.
Kinerja pembacaan file kecil konkuren: Untuk pembacaan file kecil dengan konkurensi tinggi (128 thread), ossfs 2.0 memberikan bandwidth lebih dari 280× dari ossfs 1.0.
Jika kinerja baca dan tulis, seperti latensi dan throughput, tidak memenuhi kebutuhan Anda, lihat Praktik terbaik untuk mengoptimalkan kinerja volume OSS.
Prasyarat
Komponen managed-csiprovisioner telah diinstal di kluster ACS.
Buka halaman manajemen kluster ACS di konsol ACS. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih . Pada tab Storage, Anda dapat memeriksa apakah managed-csiprovisioner telah diinstal.
Catatan penggunaan
Catatan berikut terutama berlaku untuk skenario baca dan tulis umum (ossfs 1.0). Catatan ini umumnya tidak berlaku untuk klien ossfs 2.0 karena hanya mendukung beberapa operasi POSIX (terutama operasi baca).
ACS hanya mendukung volume OSS yang disediakan secara statis. Volume OSS yang disediakan secara dinamis tidak didukung.
Penulisan acak atau penulisan tambahan melibatkan pembuatan file baru secara lokal dan mengunggah ulang ke server OSS. Mengingat karakteristik penyimpanan OSS, perhatikan hal berikut:
Operasi rename untuk file dan folder tidak bersifat atomik.
Hindari penulisan konkuren atau melakukan operasi seperti kompresi dan dekompresi langsung di jalur pemasangan.
PentingDalam skenario multi-tulis, Anda harus mengoordinasikan perilaku setiap klien. ACS tidak menjamin konsistensi data untuk masalah metadata atau data yang disebabkan oleh operasi tulis.
Selain itu, perhatikan batasan berikut:
Tautan keras (hard links) tidak didukung.
Anda tidak dapat memasang bucket dengan StorageClass Archive Storage, Cold Archive, atau Deep Cold Archive.
Untuk volume ossfs 1.0, operasi readdir secara default mengirim banyak permintaan headObject untuk mendapatkan informasi ekstensi semua objek di jalur tersebut. Ketika jalur tujuan berisi banyak file, kinerja keseluruhan ossfs mungkin terpengaruh. Jika izin file dan properti lainnya tidak penting dalam skenario baca dan tulis Anda, Anda dapat mengaktifkan parameter
-o readdir_optimizeuntuk mengoptimalkan kinerja. Untuk informasi selengkapnya, lihat Fitur optimasi readdir baru.
Buat bucket OSS dan dapatkan informasi bucket
Buat bucket OSS.
Masuk ke Konsol OSS. Di panel navigasi sebelah kiri, klik Buckets.
Klik Create Bucket.
Di panel yang muncul, konfigurasikan parameter untuk bucket OSS dan klik Create.
Tabel berikut menjelaskan parameter utama. Untuk informasi selengkapnya, lihat Buat bucket.
Parameter
Deskripsi
Bucket Name
Masukkan nama kustom. Nama harus unik secara global dalam OSS dan tidak dapat diubah setelah bucket dibuat. Untuk informasi selengkapnya tentang persyaratan format, lihat petunjuk di layar.
Region
Pilih Region-specific dan pilih wilayah tempat kluster ACS berada. Hal ini memungkinkan pod di kluster ACS mengakses bucket OSS melalui jaringan internal.
(Opsional) Untuk memasang subdirektori bucket OSS, Anda dapat membuat subdirektori tersebut.
Di halaman Buckets, klik nama bucket tujuan.
Di panel navigasi sebelah kiri halaman detail bucket, pilih .
Klik Create Directory untuk membuat direktori yang diperlukan di bucket OSS.
Dapatkan titik akhir bucket OSS.
Di halaman Buckets, klik nama bucket tujuan.
Di halaman detail bucket, klik tab Overview. Di bagian Port, salin titik akhirnya.
Jika bucket OSS dan kluster ACS berada di wilayah yang sama, salin titik akhir VPC.
Jika bucket tidak spesifik wilayah atau berada di wilayah yang berbeda dari kluster ACS, salin titik akhir publik.
Dapatkan ID AccessKey dan rahasia AccessKey untuk mengizinkan akses ke OSS. Untuk informasi selengkapnya, lihat Dapatkan pasangan AccessKey.
CatatanUntuk memasang bucket OSS yang dimiliki oleh akun Alibaba Cloud lain, Anda harus mendapatkan pasangan AccessKey dari akun tersebut.
Memasang volume OSS
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 di atas membuat secret dan PV. Secret menyimpan pasangan AccessKey untuk digunakan secara aman oleh PV. Ganti nilai
akIddengan ID AccessKey Anda dan nilaiakSecretdengan rahasia AccessKey Anda.Tabel berikut menjelaskan parameter PV.
Parameter
Deskripsi
alicloud-pvnameLabel PV. Ini digunakan untuk mengikat PVC.
storageClassNameKonfigurasi ini hanya digunakan untuk mengikat PVC. Anda tidak perlu mengaitkan StorageClass aktual.
storageKapasitas penyimpanan volume OSS.
CatatanKapasitas volume OSS yang disediakan secara statis hanya untuk tujuan deklarasi. Kapasitas aktual tidak dibatasi. Kapasitas yang tersedia mengikuti jumlah yang ditampilkan di Konsol OSS.
accessModesMode akses.
persistentVolumeReclaimPolicyKebijakan reklamasi.
driverTipe driver. Di sini, diatur ke
ossplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI OSS Alibaba Cloud digunakan.volumeHandlePengidentifikasi unik PV. Harus konsisten dengan
metadata.name.nodePublishSecretRefMendapatkan pasangan AccessKey dari secret yang ditentukan untuk otorisasi.
bucketNama bucket OSS. Ganti nilai
bucketdengan nama aktual bucket OSS Anda.urlTitik akhir bucket OSS. Ganti nilai
urldengan titik akhir aktual bucket OSS Anda.Jika bucket OSS dan kluster ACS berada di wilayah yang sama, gunakan titik akhir VPC. Misalnya,
oss-cn-shanghai-internal.aliyuncs.com.Jika bucket tidak spesifik wilayah atau berada di wilayah yang berbeda dari kluster ACS, gunakan titik akhir publik. Misalnya,
oss-cn-shanghai.aliyuncs.com.
otherOptsMasukkan parameter kustom untuk volume OSS dalam format
-o *** -o ***, seperti-o umask=022 -o max_stat_cache_size=100000 -o allow_other.Jalankan perintah berikut untuk membuat secret dan PV:
kubectl create -f oss-pv.yamlPeriksa status 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
storageClassNameKonfigurasi ini hanya digunakan untuk mengikat PV. Anda tidak perlu mengaitkan StorageClass aktual. Harus konsisten dengan
spec.storageClassNamePV.accessModesMode akses.
storageKapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh lebih tinggi dari kapasitas volume OSS.
alicloud-pvnameLabel PV yang akan diikat. Harus konsisten dengan
metadata.labels.alicloud-pvnamePV.Anda dapat membuat PVC.
kubectl create -f oss-pvc.yamlAnda dapat memeriksa PVC.
kubectl get pvcOutput berikut mengonfirmasi bahwa PVC terikat ke PV yang Anda buat 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 OSS
Simpan konten YAML berikut sebagai oss-test.yaml.
Contoh YAML berikut membuat deployment dengan dua pod. Kedua pod meminta sumber daya penyimpanan menggunakan PVC bernama
oss-pvc. Jalur pemasangan 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-pvcJalankan perintah berikut untuk membuat deployment dan memasang volume OSS:
kubectl create -f oss-test.yamlPeriksa status pod di deployment.
kubectl get pod | grep oss-testContoh output berikut menunjukkan bahwa dua pod dibuat.
oss-test-****-***a 1/1 Running 0 28s oss-test-****-***b 1/1 Running 0 28sLihat jalur pemasangan.
Perintah berikut adalah contoh. Secara default, direktori kosong dan tidak ada output yang dikembalikan.
kubectl exec oss-test-****-***a -- ls /data
Konsol
Langkah 1: Buat PV
Masuk 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 Persistent Volume, konfigurasikan parameter dan klik Create.
Parameter
Deskripsi
Contoh
PV Type
Pilih OSS.
OSS
Name
Masukkan nama kustom untuk PV. Untuk informasi selengkapnya tentang persyaratan format, lihat petunjuk di layar.
oss-pv
Capacity
Kapasitas penyimpanan volume OSS.
CatatanKapasitas volume OSS yang disediakan secara statis hanya untuk tujuan deklarasi. Kapasitas aktual tidak dibatasi. Kapasitas yang tersedia mengikuti jumlah yang ditampilkan di Konsol OSS.
20 Gi
Access Mode
Pilih salah satu opsi berikut sesuai kebutuhan:
ReadOnlyMany: Volume dapat dipasang oleh beberapa pod dalam mode read-only.
ReadWriteMany: Volume dapat dipasang oleh beberapa pod dalam mode baca/tulis.
ReadWriteMany
Access Certificate
Untuk memastikan keamanan, simpan informasi AccessKey dalam secret. Topik ini menggunakan Create Secret sebagai contoh.
Create Secret
Namespace: default
Name: oss-secret
AccessKey ID: ********
AccessKey Secret: ********
Bucket ID
Pilih bucket OSS.
oss-acs-***
OSS Path
Direktori yang akan dipasang. Direktori root (
/) dipasang secara default. Anda dapat memasang subdirektori (seperti/dir) sesuai kebutuhan. Pastikan subdirektori tersebut sudah ada./
Endpoint
Titik akhir bucket OSS.
Jika bucket OSS dan kluster ACS berada di wilayah yang sama, pilih Internal Endpoint.
Jika bucket tidak spesifik wilayah atau berada di wilayah yang berbeda dari kluster ACS, pilih Public Endpoint.
Private Domain Name
Setelah PV dibuat, Anda dapat melihat informasinya di halaman Persistent Volumes. PV belum terikat 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 Create Persistent Volume Claim, konfigurasikan parameter dan klik Create.
Parameter
Deskripsi
Contoh
PVC Type
Pilih OSS.
OSS
Name
Masukkan nama kustom untuk PVC. Untuk informasi selengkapnya tentang persyaratan format, lihat petunjuk di layar.
oss-pvc
Allocation Mode
Pilih Existing Volume.
Existing Volume
Existing Volume
Pilih PV yang Anda buat sebelumnya.
oss-pv
Total
Kapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh lebih tinggi dari kapasitas volume OSS.
20 Gi
Setelah PVC dibuat, Anda dapat melihat detailnya di halaman Persistent Volume Claims. PVC terikat ke Persistent Volume (PV) yang sesuai, yaitu volume OSS.
Langkah 3: Buat aplikasi dan pasang volume OSS
Di panel navigasi sebelah kiri halaman manajemen kluster, pilih .
Di halaman Stateless, klik Create From Image.
Konfigurasikan parameter untuk deployment dan klik Create.
Tabel berikut menjelaskan parameter utama. Gunakan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Buat aplikasi tanpa status dari Deployment.
Halaman konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Application Name
Masukkan nama kustom untuk deployment. Untuk informasi selengkapnya tentang persyaratan format, lihat petunjuk di layar.
oss-test
Number Of Replicas
Konfigurasikan jumlah replika untuk deployment.
2
Container Configuration
Image Name
Masukkan alamat citra yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required Resources
Atur sumber daya vCPU dan memori yang diperlukan.
0,25 vCPU, 0,5 GiB
Volume
Klik Add Cloud Storage Claim dan konfigurasikan parameter.
Mount Source: Pilih PVC yang Anda buat sebelumnya.
Container Path: Masukkan jalur kontainer tempat Anda ingin memasang bucket OSS.
Mount Source: oss-pvc
Container Path: /data
Periksa status deployment aplikasi.
Di halaman Stateless, klik nama aplikasi.
Di tab Pods, pastikan pod berada dalam status Running.
Volume ossfs 2.0
Anda hanya dapat memasang volume ossfs 2.0 yang disediakan secara statis menggunakan kubectl. Operasi ini tidak didukung di konsol ACS.
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 # Mendeklarasikan secara eksplisit penggunaan klien ossfs 2.0 bucket: "<your OSS Bucket Name>" url: "<your OSS Bucket Endpoint>" otherOpts: "-o close_to_open=false" # Catatan: Parameter pemasangan yang didukung tidak kompatibel dengan klien ossfs 1.0.CatatanYAML di atas membuat secret dan PV. Secret menyimpan pasangan AccessKey untuk digunakan secara aman oleh PV. Ganti nilai
akIddengan ID AccessKey Anda dan nilaiakSecretdengan rahasia AccessKey Anda.Tabel berikut menjelaskan parameter PV.
Parameter
Deskripsi
alicloud-pvnameLabel PV. Ini digunakan untuk mengikat PVC.
storageClassNameKonfigurasi ini hanya digunakan untuk mengikat PVC. Anda tidak perlu mengaitkan StorageClass aktual.
storageKapasitas penyimpanan volume OSS.
CatatanKapasitas volume OSS yang disediakan secara statis hanya untuk tujuan deklarasi. Kapasitas aktual tidak dibatasi. Kapasitas yang tersedia mengikuti jumlah yang ditampilkan di Konsol OSS.
accessModesMode akses.
persistentVolumeReclaimPolicyKebijakan reklamasi.
driverTipe driver. Di sini, diatur ke
ossplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI OSS Alibaba Cloud digunakan.volumeHandlePengidentifikasi unik PV. Harus konsisten dengan
metadata.name.nodePublishSecretRefMendapatkan pasangan AccessKey dari secret yang ditentukan untuk otorisasi.
fuseTypeMenentukan klien yang digunakan untuk pemasangan. Harus diatur ke
ossfs2untuk menggunakan klien ossfs 2.0.bucketNama bucket OSS. Ganti nilai
bucketdengan nama aktual bucket OSS Anda.urlTitik akhir bucket OSS. Ganti nilai
urldengan titik akhir aktual bucket OSS Anda.Jika bucket OSS dan kluster ACS berada di wilayah yang sama, gunakan titik akhir VPC. Misalnya,
oss-cn-shanghai-internal.aliyuncs.com.Jika bucket tidak spesifik wilayah atau berada di wilayah yang berbeda dari kluster ACS, gunakan titik akhir publik. Misalnya,
oss-cn-shanghai.aliyuncs.com.
otherOptsMasukkan parameter kustom untuk volume OSS dalam format
-o *** -o ***. Misalnya,-o close_to_open=false.close_to_open: Dinonaktifkan secara default. Jika diaktifkan, sistem mengirim permintaan GetObjectMeta ke OSS setiap kali file dibuka untuk mendapatkan metadata terbaru file di OSS. Hal ini memastikan metadata real-time. Namun, dalam skenario yang memerlukan pembacaan banyak file kecil, kueri metadata yang sering secara signifikan meningkatkan latensi akses.Untuk informasi selengkapnya tentang parameter opsional, lihat Opsi pemasangan ossfs 2.0.
Jalankan perintah berikut untuk membuat secret dan PV:
kubectl create -f oss-pv.yamlPeriksa status 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-pvParameter dijelaskan dalam tabel berikut.
Parameter
Deskripsi
storageClassNameKonfigurasi ini hanya digunakan untuk mengikat PV. Anda tidak perlu mengaitkan StorageClass aktual. Harus konsisten dengan
spec.storageClassNamePV.accessModesMode akses.
storageKapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh lebih tinggi dari kapasitas volume OSS.
alicloud-pvnameLabel PV yang akan diikat. Harus konsisten dengan
metadata.labels.alicloud-pvnamePV.Anda dapat membuat PVC.
kubectl create -f oss-pvc.yamlPeriksa status PVC.
kubectl get pvcOutput berikut menunjukkan bahwa PVC terikat ke PV yang Anda buat 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 OSS
Simpan konten YAML berikut sebagai oss-test.yaml.
Contoh YAML berikut membuat deployment dengan dua pod. Kedua pod meminta sumber daya penyimpanan menggunakan PVC bernama
oss-pvc. Jalur pemasangan 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-pvcJalankan perintah berikut untuk membuat deployment dan memasang volume OSS:
kubectl create -f oss-test.yamlPeriksa status pod di deployment.
kubectl get pod | grep oss-testContoh output berikut menunjukkan bahwa dua pod dibuat.
oss-test-****-***a 1/1 Running 0 28s oss-test-****-***b 1/1 Running 0 28sLihat jalur pemasangan.
Perintah berikut adalah contoh. Secara default, direktori kosong dan tidak ada output yang dikembalikan.
kubectl exec oss-test-****-***a -- ls /data
Verifikasi bahwa volume OSS dapat berbagi dan menyimpan data secara persisten
Deployment yang Anda buat menyediakan dua pod. Bucket OSS yang sama dipasang ke kedua pod. Anda dapat menggunakan metode berikut untuk memverifikasi bahwa volume OSS dapat digunakan untuk berbagi dan menyimpan data secara persisten:
Buat file di salah satu pod dan periksa apakah file tersebut dapat diakses dari pod lain. Jika file dapat diakses, berarti berbagi data diaktifkan.
Buat ulang deployment. Akses volume OSS dari pod baru untuk memeriksa apakah data asli masih ada di bucket OSS. Jika data masih ada, berarti persistensi data diaktifkan.
Lihat informasi pod.
kubectl get pod | grep oss-testContoh output:
oss-test-****-***a 1/1 Running 0 40s oss-test-****-***b 1/1 Running 0 40sVerifikasi penyimpanan bersama.
Buat file di salah satu pod.
Dalam contoh ini, pod bernama
oss-test-****-***adigunakan:kubectl exec oss-test-****-***a -- touch /data/test.txtLihat file dari pod lain.
Dalam contoh ini, pod bernama
oss-test-****-***bdigunakan:kubectl exec oss-test-****-***b -- ls /dataOutput berikut menunjukkan bahwa file baru
test.txtdibagikan.test.txt
Verifikasi bahwa data tetap ada setelah pod dibuat ulang.
Hapus lalu buat ulang deployment.
kubectl rollout restart deploy oss-testLihat pod dan tunggu hingga pod baru dibuat.
kubectl get pod | grep oss-testContoh output:
oss-test-****-***c 1/1 Running 0 67s oss-test-****-***d 1/1 Running 0 49sDari pod baru, periksa apakah data di sistem file masih ada.
Dalam contoh ini, pod bernama
oss-test-c***digunakan:kubectl exec oss-test-****-***c -- ls /dataOutput berikut menunjukkan bahwa data di bucket OSS masih ada dan dapat diambil dari direktori pemasangan di pod baru.
test.txt