ossfs 1.0 mendukung volume penyediaan dinamis. Anda dapat menggunakan StorageClass dan PersistentVolumeClaim (PVC) untuk secara otomatis membuat persistent volume (PV) serta memasang Bucket OSS. Fitur ini menyederhanakan manajemen penyimpanan dengan menghilangkan kebutuhan konfigurasi PV secara manual, sehingga ideal untuk lingkungan multi-tenant dan skenario yang memerlukan pembuatan penyimpanan secara sering dan sesuai permintaan.
Prasyarat
Pastikan kluster dan komponen Container Storage Interface (CSI) Anda (csi-plugin dan csi-provisioner) memenuhi persyaratan versi berikut:
Pasang menggunakan autentikasi RAM Roles for Service Accounts (RRSA): Kluster Anda harus versi 1.26 atau lebih baru, dan versi CSI Anda harus v1.30.4 atau lebih baru.
Jika Anda menggunakan fitur RRSA pada versi sebelum 1.30.4, Anda harus menambahkan konfigurasi otorisasi Peran RAM seperti yang dijelaskan dalam[Perubahan Produk] Peningkatan versi CSI ossfs dan optimasi proses pemasangan.
Gunakan AccessKey: Untuk pemasangan yang stabil, kami merekomendasikan CSI v1.18.8.45 atau lebih baru.
Untuk meningkatkan kluster Anda, lihat Tingkatkan kluster secara manual. Untuk meningkatkan komponen, lihat Tingkatkan komponen CSI.
Mulai dari CSI v1.30.4-*, pemasangan volume penyediaan statis OSS bergantung pada komponen csi-provisioner.
Langkah 1: Pilih metode autentikasi dan siapkan kredensial
Untuk mengakses sumber daya Bucket OSS secara aman, pertama-tama konfigurasikan mekanisme autentikasi.
Autentikasi RRSA: Memberikan peran RAM sementara yang secara otomatis berputar kepada Pod untuk isolasi izin tingkat aplikasi yang detail halus. Metode ini lebih aman.
Autentikasi AccessKey: Menyimpan kunci statis jangka panjang dalam Secret. Metode ini lebih mudah dikonfigurasi tetapi kurang aman.
Pada kluster versi 1.26 dan lebih baru, kami merekomendasikan menggunakan autentikasi RRSA untuk menghindari gangguan layanan yang disebabkan oleh remount
ossfssaat AccessKey diputar.Panduan ini mengasumsikan kluster dan Bucket OSS berada dalam Akun Alibaba Cloud yang sama. Untuk memasang Bucket OSS lintas akun, kami merekomendasikan menggunakan autentikasi RRSA.
Gunakan RRSA
1. Aktifkan RRSA di kluster Anda
Pada halaman ACK Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, klik Cluster Information.
Pada tab Basic Information, cari bagian Security and Auditing. Di sebelah kanan RRSA OIDC, klik Enable. Ikuti petunjuk di layar untuk mengaktifkan RRSA selama jam sepi.
Saat status kluster berubah dari Updating menjadi Running, RRSA telah berhasil diaktifkan.
PentingSetelah Anda mengaktifkan RRSA, periode validitas maksimum untuk token ServiceAccount baru yang dibuat di kluster dibatasi hingga 12 jam.
2. Buat dan otorisasi peran RAM
Buat peran RAM yang dapat diasumsikan oleh Pod Anda untuk mengakses volume OSS.
Gunakan AccessKey
Buat pengguna RAM dengan izin akses OSS dan peroleh AccessKey-nya. Ini memberikan izin kepada pengguna untuk melakukan operasi pada Bucket OSS.
Buat pengguna RAM (lewati langkah ini jika Anda sudah memilikinya).
Buka halaman Create User di konsol RAM. Ikuti petunjuk di layar untuk membuat pengguna RAM. Anda harus menetapkan nama login dan password.
Buat kebijakan akses.
Contoh ini mengikuti prinsip hak istimewa minimal. Buat kebijakan kustom untuk memberikan izin mengakses Bucket OSS target (izin read-only atau read/write).
Buka halaman Create Policy di konsol RAM. Alihkan ke tab JSON dan masukkan skrip kebijakan.
Kebijakan read-only OSS
Ganti
<myBucketName>dengan nama bucket aktual.{ "Statement": [ { "Action": [ "oss:Get*", "oss:List*" ], "Effect": "Allow", "Resource": [ "acs:oss:*:*:<myBucketName>", "acs:oss:*:*:<myBucketName>/*" ] } ], "Version": "1" }Kebijakan read/write OSS
Ganti
<myBucketName>dengan nama bucket aktual.{ "Statement": [ { "Action": "oss:*", "Effect": "Allow", "Resource": [ "acs:oss:*:*:<myBucketName>", "acs:oss:*:*:<myBucketName>/*" ] } ], "Version": "1" }Saat Anda membuat PV di konsol, Anda juga memerlukan izin
oss:ListBuckets.{ "Effect": "Allow", "Action": "oss:ListBuckets", "Resource": "*" }(Opsional) Jika Anda menggunakan ID customer master key (CMK) yang dikelola oleh KMS untuk mengenkripsi objek OSS, Anda juga harus mengonfigurasi izin KMS untuk pengguna RAM tersebut. Untuk informasi lebih lanjut, lihat Gunakan ID CMK tertentu yang dikelola oleh KMS untuk enkripsi.
Berikan kebijakan kepada pengguna RAM.
Buka halaman Users di konsol RAM. Di kolom Actions untuk pengguna target, klik Add Permissions.
Di bagian Policy, cari dan pilih kebijakan yang Anda buat pada langkah sebelumnya, lalu tambahkan ke izin.
Buat AccessKey untuk pengguna RAM. Anda akan menyimpannya sebagai secret agar digunakan oleh PV.
Buka halaman Users di konsol RAM. Klik pengguna target. Lalu, di bagian AccessKey, klik Create AccessKey.
Pada kotak dialog yang muncul, ikuti petunjuk di layar untuk membuat AccessKey. Anda harus memperoleh dan menyimpan secara aman ID AccessKey dan Rahasia AccessKey.
Langkah 1: Buat StorageClass
Buat StorageClass untuk menentukan templat pembuatan volume persisten.
Metode RRSA
Buat file bernama
sc-oss.yaml.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sc-oss parameters: # Ganti dengan nama bucket aktual Anda. bucket: bucket # Direktori root atau subdirektori tertentu dari bucket yang akan dipasang. path: / # Titik akhir wilayah tempat bucket berada. url: "http://oss-cn-hangzhou-internal.aliyuncs.com" # Gunakan metode RRSA untuk autentikasi. authType: rrsa # Peran RAM yang telah Anda buat atau modifikasi. roleName: demo-role-for-rrsa # Parameter kustom. otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" # Mode akses volume. volumeAs: sharepath # Nilai ini tetap ketika Anda menggunakan plug-in CSI OSS Alibaba Cloud. provisioner: ossplugin.csi.alibabacloud.com # Kebijakan reclaim untuk PV yang disediakan secara dinamis. reclaimPolicy: Retain # Mode pengikatan. volumeBindingMode: ImmediateParameter
Deskripsi
bucketBucket OSS yang akan dipasang.
pathMemerlukan versi komponen CSI v1.14.8.32-c77e277b-aliyun atau lebih baru.
Menentukan jalur pemasangan relatif terhadap direktori root bucket. Default-nya adalah
/, yang memasang seluruh bucket.Jika versi ossfs lebih awal dari 1.91,
pathyang ditentukan harus sudah ada di Bucket OSS. Untuk detailnya, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.urlTitik akhir akses untuk bucket OSS.
Gunakan titik akhir internal jika node kluster dan bucket berada di wilayah yang sama, atau jika koneksi Virtual Private Cloud (VPC) telah dibuat.
Gunakan titik akhir publik jika node pemasangan dan bucket berada di wilayah berbeda.
Berikut adalah format umum untuk berbagai titik akhir akses:
Internal:
http://oss-{{regionName}}-internal.aliyuncs.comatauhttps://oss-{{regionName}}-internal.aliyuncs.com.Format titik akhir akses internal
vpc100-oss-{{regionName}}.aliyuncs.comsudah tidak digunakan lagi. Segera beralih ke format baru.Publik:
http://oss-{{regionName}}.aliyuncs.comatauhttps://oss-{{regionName}}.aliyuncs.com.
authTypeAtur ke
rrsauntuk menggunakan autentikasi RRSA.roleNameAtur ke peran RAM yang telah Anda buat atau modifikasi.
Untuk mengonfigurasi izin berbeda untuk StorageClass berbeda, buat peran RAM berbeda dan tentukan nilai
roleNameberbeda di StorageClass.otherOptsMasukkan parameter kustom untuk volume OSS dalam format
-o *** -o ***, seperti-o umask=022 -o max_stat_cache_size=100000 -o allow_other.provisionerJenis driver. Nilai ini tetap
ossplugin.csi.alibabacloud.comsaat Anda menggunakan plug-in CSI OSS Alibaba Cloud.reclaimPolicyKebijakan reclaim untuk PV yang disediakan secara dinamis. Volume persisten OSS saat ini hanya mendukung
Retain. Artinya, saat Anda menghapus PVC, PV dan data di Bucket OSS tidak dihapus.volumeBindingModeMode asosiasi.
Volume persisten OSS tidak memerlukan afinitas node berbasis zona. Anda dapat menggunakan nilai default
Immediate.volumeAsMode akses volume. Nilai default-nya adalah
sharepath. Nilai yang valid:subpathhanya berlaku jika versi komponen CSI 1.31.3 atau lebih baru. Jika tidak,sharepathyang digunakan.sharepath: Memasang dalam mode bersama. Semua volume berbagi jalur pemasangan. Data disimpan di<bucket>:<path>/.subpath: Memasang dalam mode subdirektori. Subdirektori dibuat otomatis di bawah jalur pemasangan saat volume dibuat. Data disimpan di<bucket>:<path>/<pv-name>/.
sigVersionVersi signature untuk permintaan ke server OSS.
"v1"(default): Menggunakan Signature Version 1 OSS."v4"(direkomendasikan): Menggunakan Signature Version 4 OSS.
Buat StorageClass.
kubectl apply -f sc-oss.yaml
Metode AccessKey
kubectl
1. Buat StorageClass
Buat secret. Namespace secret harus sama dengan namespace aplikasi Anda.
Ganti
<yourAccessKey ID>dan<yourAccessKey Secret>dengan ID AccessKey dan Rahasia AccessKey yang telah Anda peroleh.kubectl create secret generic oss-secret --from-literal='akId=<yourAccessKey ID>' --from-literal='akSecret=<yourAccessKey Secret>'Buat StorageClass.
Buat file bernama
sc-oss.yaml.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sc-oss parameters: # Ganti dengan nama bucket aktual Anda. bucket: bucket # Direktori root atau subdirektori tertentu dari bucket yang akan dipasang. path: / # Titik akhir wilayah tempat bucket berada. url: "http://oss-cn-hangzhou-internal.aliyuncs.com" # Nama secret yang menyimpan Informasi AccessKey. csi.storage.k8s.io/node-publish-secret-name: oss-secret # Namespace tempat secret yang menyimpan Informasi AccessKey berada. csi.storage.k8s.io/node-publish-secret-namespace: default # Parameter kustom. otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" # Nilai ini tetap ketika Anda menggunakan plug-in CSI OSS Alibaba Cloud. provisioner: ossplugin.csi.alibabacloud.com # Kebijakan reclaim untuk PV yang disediakan secara dinamis. reclaimPolicy: Retain # Mode pengikatan. volumeBindingMode: ImmediateParameter
Deskripsi
nameNama StorageClass.
bucketBucket OSS yang akan dipasang.
pathMemerlukan versi komponen CSI v1.14.8.32-c77e277b-aliyun atau lebih baru.
Menentukan jalur pemasangan relatif terhadap direktori root bucket. Default-nya adalah
/, yang memasang seluruh bucket.Jika versi ossfs lebih awal dari 1.91,
pathyang ditentukan harus sudah ada di Bucket OSS. Untuk detailnya, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.urlTitik akhir akses untuk bucket OSS.
Gunakan titik akhir internal jika node kluster dan bucket berada di wilayah yang sama, atau jika koneksi Virtual Private Cloud (VPC) telah dibuat.
Gunakan titik akhir publik jika node pemasangan dan bucket berada di wilayah berbeda.
Berikut adalah format umum untuk berbagai titik akhir akses:
Internal:
http://oss-{{regionName}}-internal.aliyuncs.comatauhttps://oss-{{regionName}}-internal.aliyuncs.com.Format titik akhir akses internal
vpc100-oss-{{regionName}}.aliyuncs.comsudah tidak digunakan lagi. Segera beralih ke format baru.Publik:
http://oss-{{regionName}}.aliyuncs.comatauhttps://oss-{{regionName}}.aliyuncs.com.
csi.storage.k8s.io/node-publish-secret-nameNama secret yang menyimpan Informasi AccessKey.
csi.storage.k8s.io/node-publish-secret-namespaceNamespace tempat secret yang menyimpan Informasi AccessKey berada.
otherOptsMasukkan parameter kustom untuk volume OSS dalam format
-o *** -o ***, seperti-o umask=022 -o max_stat_cache_size=100000 -o allow_other.provisionerJenis driver. Nilai ini tetap
ossplugin.csi.alibabacloud.comsaat Anda menggunakan plug-in CSI OSS Alibaba Cloud.reclaimPolicyKebijakan reclaim untuk PV yang disediakan secara dinamis. Volume persisten OSS saat ini hanya mendukung
Retain. Artinya, saat Anda menghapus PVC, PV dan data di Bucket OSS tidak dihapus.volumeBindingModeMode asosiasi.
Volume persisten OSS tidak memerlukan afinitas node berbasis zona. Anda dapat menggunakan nilai default
Immediate.volumeAsMode akses volume. Nilai default-nya adalah
sharepath. Nilai yang valid:subpathhanya berlaku jika versi komponen CSI 1.31.3 atau lebih baru. Jika tidak,sharepathyang digunakan.sharepath: Memasang dalam mode bersama. Semua volume berbagi jalur pemasangan. Data disimpan di<bucket>:<path>/.subpath: Memasang dalam mode subdirektori. Subdirektori dibuat otomatis di bawah jalur pemasangan saat volume dibuat. Data disimpan di<bucket>:<path>/<pv-name>/.
sigVersionVersi signature untuk permintaan ke server OSS.
"v1"(default): Menggunakan Signature Version 1 OSS."v4"(direkomendasikan): Menggunakan Signature Version 4 OSS.
Buat StorageClass.
kubectl apply -f sc-oss.yaml
Konsol
Simpan AccessKey yang Anda peroleh di Langkah 1 sebagai secret untuk digunakan oleh PV.
Pada halaman Clusters, klik nama kluster yang ingin diubah. Di panel navigasi kiri, pilih .
Klik Create from YAML, ikuti petunjuk di layar untuk membuat secret.
apiVersion: v1 kind: Secret metadata: name: oss-secret # Harus sama dengan namespace tempat aplikasi berada namespace: default stringData: # Ganti dengan ID AccessKey yang Anda peroleh akId: <your AccessKey ID> # Ganti dengan Rahasia AccessKey yang Anda peroleh akSecret: <your AccessKey Secret>
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Pada halaman StorageClasses, klik Create. Atur PV Type ke OSS dan konfigurasikan parameter StorageClass sesuai petunjuk.
Item Konfigurasi
Deskripsi
Access Certificate
Konfigurasikan secret yang diperlukan untuk mengakses OSS. Ini adalah ID AccessKey dan Rahasia AccessKey yang telah Anda peroleh.
Bucket ID
Bucket OSS yang akan digunakan.
Hanya bucket yang dapat diakses dengan AccessKey yang dikonfigurasi yang ditampilkan di sini.
OSS Path
Memerlukan versi komponen CSI v1.14.8.32-c77e277b-aliyun atau lebih baru.
Menentukan jalur pemasangan relatif terhadap direktori root bucket. Default-nya adalah
/, yang memasang seluruh bucket.Jika versi ossfs lebih awal dari 1.91,
pathyang ditentukan harus sudah ada di Bucket OSS. Untuk detailnya, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.Volume Mode
Mode akses volume. Mode default-nya adalah Shared Directory. Nilai yang valid:
Subdirectory hanya berlaku jika versi komponen CSI 1.31.3 atau lebih baru. Jika tidak, mode Shared Directory yang digunakan.
Shared Directory (
sharepath): Semua volume berbagi jalur pemasangan. Data disimpan di<bucket>:<path>/.Subdirectory (
subpath): Subdirektori dibuat otomatis di bawah jalur pemasangan saat volume dibuat. Data disimpan di<bucket>:<path>/<pv-name>/.
Endpoint
Titik akhir akses untuk bucket OSS.
Gunakan titik akhir internal jika node kluster dan bucket berada di wilayah yang sama, atau jika koneksi Virtual Private Cloud (VPC) telah dibuat.
Gunakan titik akhir publik jika node pemasangan dan bucket berada di wilayah berbeda.
Berikut adalah format umum untuk berbagai titik akhir akses:
Internal:
http://oss-{{regionName}}-internal.aliyuncs.comatauhttps://oss-{{regionName}}-internal.aliyuncs.com.Format titik akhir akses internal
vpc100-oss-{{regionName}}.aliyuncs.comsudah tidak digunakan lagi. Segera beralih ke format baru.Publik:
http://oss-{{regionName}}.aliyuncs.comatauhttps://oss-{{regionName}}.aliyuncs.com.
Saat Anda mengakses melalui jaringan internal, protokol HTTP digunakan secara default. Untuk menggunakan HTTPS, gunakan metode kubectl.
Reclaim Policy
Kebijakan reclaim untuk PV yang disediakan secara dinamis. Volume persisten OSS saat ini hanya mendukung
Retain. Artinya, saat Anda menghapus PVC, PV dan data di Bucket OSS tidak dihapus.Optional Parameters
Masukkan parameter kustom untuk volume OSS dalam format
-o *** -o ***, seperti-o umask=022 -o max_stat_cache_size=100000 -o allow_other.
Langkah 2: Buat PVC
Buat PVC untuk meminta sumber daya penyimpanan secara dinamis. Plug-in CSI secara otomatis membuat PV berdasarkan StorageClass.
kubectl
Buat file bernama
pvc-oss.yaml.apiVersion: v1 kind: PersistentVolumeClaim metadata: # Nama PVC. name: pvc-oss spec: # Konfigurasikan mode akses. ReadOnlyMany menunjukkan bahwa ossfs memasang Bucket OSS dalam mode read-only. accessModes: - ReadOnlyMany volumeMode: Filesystem resources: requests: # Nyatakan kapasitas penyimpanan. Nilai ini tidak boleh lebih besar dari ukuran total volume. storage: 20Gi # Nyatakan StorageClass yang direferensikan. storageClassName: sc-ossParameter
Deskripsi
accessModesKonfigurasikan mode akses.
ReadOnlyManydanReadWriteManydidukung.Jika Anda memilih
ReadOnlyMany, ossfs memasang Bucket OSS dalam mode read-only.storageNyatakan kapasitas penyimpanan yang diminta untuk volume. Nilai ini tidak membatasi kapasitas aktual volume persisten OSS.
storageClassNameStorageClass yang direferensikan.
Buat PVC.
kubectl apply -f pvc-oss.yamlKonfirmasi bahwa PVC telah dibuat dan berada dalam status Bound.
kubectl get pvc pvc-ossOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-oss Bound oss-251d111d-3b0b-4879-81a0-eb5a19xxxxxx 20Gi ROX sc-oss <unset> 4d20h
Konsol
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Pada halaman Persistent Volume Claims, klik Create. Atur PVC Type ke OSS dan konfigurasikan parameter PVC sesuai petunjuk.
Parameter
Deskripsi
Allocation Mode
Pilih Use StorageClass.
Existing StorageClass
Klik Select dan pilih StorageClass yang telah Anda buat.
Capacity
Nyatakan kapasitas penyimpanan yang diminta untuk volume. Nilai ini tidak membatasi kapasitas aktual volume persisten OSS.
Access Mode
Konfigurasikan mode akses.
ReadOnlyManydanReadWriteManydidukung.Jika Anda memilih
ReadOnlyMany, ossfs memasang Bucket OSS dalam mode read-only.
Langkah 4: Buat aplikasi dan pasang volume
Referensikan PVC di aplikasi Anda untuk menyelesaikan pemasangan.
kubectl
Buat file bernama
oss-static.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: oss-static labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 volumeMounts: # Jalur pemasangan di dalam kontainer - name: pvc-oss mountPath: "/data" # Konfigurasikan pemeriksaan kesehatan livenessProbe: exec: command: - ls - /data initialDelaySeconds: 30 periodSeconds: 30 volumes: - name: pvc-oss persistentVolumeClaim: # Referensikan PVC yang Anda buat claimName: pvc-ossBuat aplikasi.
kubectl create -f oss-static.yamlVerifikasi hasil pemasangan.
Konfirmasi bahwa Pod berada dalam status
Running.kubectl get pod -l app=nginxMasuk ke Pod dan periksa titik pemasangan.
kubectl exec -it <pod-name> -- ls /dataOutput harus menampilkan data dari jalur pemasangan OSS.
Konsol
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Pada halaman Deployments, klik Create from Image.
Konfigurasikan parameter aplikasi sesuai petunjuk.
Parameter utama dijelaskan di bawah ini. Anda dapat menggunakan nilai default untuk parameter lainnya. Untuk detailnya, lihat Buat workload tanpa status (Deployment).
Langkah konfigurasi
Parameter
Deskripsi
Basic Information
Replicas
Jumlah replika untuk Deployment.
Container
Image Name
Alamat citra yang digunakan untuk men-deploy aplikasi, seperti
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6.Required Resources
Sumber daya vCPU dan memori yang diperlukan.
Volume
Klik Add PVC dan konfigurasikan parameter.
Mount Source: Pilih PVC yang telah Anda buat sebelumnya.
Container Path: Masukkan jalur di dalam kontainer tempat volume OSS akan dipasang, seperti
/data.
Advanced
Pod Labels
Misalnya, label dengan nama
appdan nilainginx.Periksa status deployment aplikasi.
Pada halaman Deployments, klik nama aplikasi. Pada tab Pods, konfirmasi bahwa pod berjalan normal (Status adalah Running).
Langkah 5: Verifikasi penyimpanan bersama dan persisten
Verifikasi penyimpanan bersama
Buat file di satu Pod lalu lihat di Pod lain untuk memverifikasi fitur penyimpanan bersama.
Lihat informasi Pod dan dapatkan nama Pod dari output.
kubectl get pod -l app=nginxBuat file bernama
tmpfiledi salah satu pod. Untuk Pod bernamaoss-static-66fbb85b67-d****:ReadWriteMany: Buat filetmpfiledi jalur/data.kubectl exec oss-static-66fbb85b67-d**** -- touch /data/tmpfileReadOnlyMany: Unggah filetmpfileke jalur yang sesuai di Bucket OSS menggunakan konsol OSS atau dengan mengunggah file dengan cp.
Lihat file dari jalur pemasangan Pod lain.
Untuk Pod bernama
oss-static-66fbb85b67-l****dengan jalur pemasangan/data:kubectl exec oss-static-66fbb85b67-l**** -- ls /data | grep tmpfileOutput
tmpfilemengonfirmasi bahwa Pod berbagi data.tmpfileJika Anda tidak melihat output yang diharapkan, konfirmasi bahwa versi komponen CSI Anda adalah v1.20.7 atau lebih baru.
Verifikasi penyimpanan persisten
Hapus dan buat ulang Pod, lalu periksa apakah file masih ada di Pod baru untuk memverifikasi persistensi data.
Hapus Pod aplikasi untuk memicu pembuatan ulang.
kubectl delete pod oss-static-66fbb85b67-d****Periksa Pod dan tunggu hingga Pod baru mulai dan masuk ke status
Running.kubectl get pod -l app=nginxPeriksa keberadaan file di jalur
/data.Untuk Pod baru bernama
oss-static-66fbb85b67-z****dengan jalur pemasangan/data:kubectl exec oss-static-66fbb85b67-z**** -- ls /data | grep tmpfileOutput
tmpfilemengonfirmasi bahwa file masih ada, menunjukkan bahwa data dipertahankan.tmpfile
Pertimbangan penting
Risiko integritas data
Risiko konsistensi penulisan konkuren: Untuk meningkatkan stabilitas penulisan, kami merekomendasikan meningkatkan komponen CSI ke v1.28 atau lebih baru. Namun, untuk skenario penulisan konkuren file tunggal, fitur "overwrite upload" OSS masih dapat menyebabkan data ditimpa. Anda harus memastikan konsistensi data di lapisan aplikasi.
Risiko sinkronisasi dan penghapusan tidak sengaja: Saat volume dipasang, semua penghapusan atau modifikasi file di jalur pemasangan pada Pod aplikasi atau node host akan langsung disinkronkan ke file sumber di Bucket OSS. Untuk mencegah kehilangan data tidak sengaja, kami merekomendasikan mengaktifkan Versioning untuk Bucket OSS Anda.
Risiko stabilitas aplikasi
Risiko Out of Memory (OOM): Saat melakukan operasi
readdir(seperti perintahlsdalam skrip shell) pada jumlah file yang besar untuk pertama kalinya (misalnya, lebih dari 100.000, tergantung pada memori node), ossfs dapat mengonsumsi banyak memori dengan memuat semua metadata sekaligus. Hal ini dapat memicu error Out of Memory (OOM), menghentikan proses, dan membuat titik pemasangan tidak tersedia.Disarankan untuk memasang subdirektori Bucket OSS atau mengoptimalkan struktur direktori untuk mengurangi risiko ini.
Waktu pemasangan meningkat: Mengonfigurasi
securityContext.fsgroupdi aplikasi Anda menyebabkan kubelet mengubah izin file secara rekursif (chmod/chown) saat memasang volume. Jika terdapat banyak file, hal ini secara signifikan meningkatkan waktu pemasangan dan dapat menyebabkan penundaan startup Pod yang parah.Jika Anda perlu mengonfigurasi parameter ini dan mengurangi waktu pemasangan, lihat Waktu pemasangan meningkat untuk volume OSS.
Risiko invalidasi kunci (autentikasi AccessKey): Jika AccessKey menjadi tidak valid atau izinnya berubah, aplikasi langsung kehilangan akses.
Untuk memulihkan akses, Anda harus memperbarui kredensial di Secret dan me-restart Pod aplikasi untuk memaksa remount, yang akan menyebabkan gangguan layanan. Lakukan operasi ini selama jendela pemeliharaan. Untuk detailnya, lihat Solusi.
Risiko biaya
Biaya part:
ossfsmengunggah file yang lebih besar dari 10 MB dalam bentuk part. Jika unggahan terganggu secara tidak terduga (misalnya, karena restart aplikasi), Anda harus menghapus part secara manual atau menghapusnya menggunakan aturan siklus hidup. Hal ini mencegah part yang tidak lengkap menempati storage space dan menimbulkan biaya.
Dokumentasi terkait
Anda dapat mengelola volume OSS melalui Container Network File System (CNFS) untuk meningkatkan kinerja dan kontrol QoS. Untuk detailnya, lihat Kelola siklus hidup volume OSS.
Untuk melindungi data sensitif saat disimpan di OSS, kami merekomendasikan mengaktifkan Enkripsi Sisi Server. Untuk detailnya, lihat Enkripsi volume ossfs 1.0.
Untuk pertanyaan umum tentang ossfs dan OSS, lihat ossfs 1.0 (default) dan FAQ volume ossfs 1.0.
Aktifkan pemantauan penyimpanan kontainer dan konfigurasikan alert untuk segera mendeteksi anomali volume atau bottleneck kinerja.
ossfs 1.0 memberikan konsistensi data yang lebih andal untuk skenario penulisan acak dan konkuren dibandingkan ossfs 2.0. Namun, ossfs 2.0 menawarkan kinerja lebih baik untuk skenario baca/tulis berurutan.