Gunakan ossfs 1.0 untuk memasang Bucket OSS sebagai penyimpanan persisten dengan membuat volume yang disediakan secara statis menggunakan PV dan PVC. Pendekatan ini ideal untuk skenario yang memerlukan pembacaan konkuren, penulisan acak yang jarang, serta modifikasi izin file—persyaratan umum untuk sumber daya seperti file konfigurasi, gambar, atau video.
Persyaratan
Kluster dan komponen CSI Anda (csi-plugin dan csi-provisioner) harus memenuhi persyaratan berikut:
Untuk autentikasi menggunakan RAM Roles for Service Accounts (RRSA): Kluster Anda harus versi 1.26 atau lebih baru, dan versi CSI harus v1.30.4 atau lebih baru.
Jika Anda menggunakan fitur RRSA pada versi sebelum v1.30.4, rujuk ke [Perubahan Produk] Peningkatan versi CSI ossfs dan optimalisasi proses pemasangan untuk menambahkan konfigurasi otorisasi Peran RAM yang diperlukan.
Untuk autentikasi menggunakan AccessKey: Untuk memastikan stabilitas pemasangan, kami merekomendasikan versi CSI v1.18.8.45 atau lebih baru.
Untuk meningkatkan kluster Anda, lihat Tingkatkan kluster secara manual. Untuk meningkatkan komponen CSI, lihat Tingkatkan komponen CSI.
Mulai dari CSI v1.30.4-*, pemasangan volume statis OSS bergantung pada komponen csi-provisioner.
Langkah 1: Pilih metode autentikasi
Untuk memastikan kluster Anda dapat mengakses sumber daya Bucket OSS secara aman dan sesuai kebijakan, Anda harus terlebih dahulu mengonfigurasi metode autentikasi.
Autentikasi RRSA: Memberikan peran RAM sementara yang berotasi otomatis kepada Pod secara dinamis untuk mengaktifkan 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.
Untuk kluster yang menjalankan versi 1.26 atau lebih baru, kami merekomendasikan autentikasi RRSA untuk mencegah restart workload dan remount ossfs akibat rotasi AccessKey.
Contoh ini mengasumsikan bahwa kluster dan Bucket OSS berada dalam Akun Alibaba Cloud yang sama. Untuk memasang Bucket OSS milik akun lain, kami merekomendasikan penggunaan autentikasi RRSA.
RRSA
1. Aktifkan RRSA untuk kluster Anda
-
Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.
Pada tab Basic Information, di bagian Security and Auditing, klik Enabled di sebelah kanan RRSA OIDC. Ikuti petunjuk di layar untuk mengaktifkan RRSA selama jam sepi.
Saat status kluster berubah dari Updating menjadi Running, RRSA telah diaktifkan.
PentingSetelah Anda mengaktifkan RRSA, periode validitas maksimum token ServiceAccount yang baru dibuat di kluster dibatasi hingga 12 jam.
2. Buat dan otorisasi peran RAM
Buat peran RAM yang dapat diasumsikan oleh Pod Anda untuk akses ke volume penyimpanan OSS yang diautentikasi dengan RRSA.
AccessKey
Buat pengguna RAM dengan izin untuk mengakses Bucket OSS target, lalu peroleh AccessKey untuk pengguna tersebut.
Buat pengguna RAM. Anda dapat melewati langkah ini jika sudah memiliki pengguna RAM.
Buka halaman Create User di Konsol RAM dan ikuti petunjuk di layar untuk membuat pengguna RAM. Anda harus menentukan parameter seperti nama login dan kata sandi.
Buat kebijakan akses.
Contoh ini mengikuti prinsip hak istimewa minimal. Buat kebijakan kustom untuk memberikan akses ke Bucket OSS target. Anda dapat memberikan izin read-only atau read/write.
Buka halaman Create Policy di Konsol RAM, alihkan ke JSON Editor, dan konfigurasikan skrip kebijakan.
Kebijakan read-only
Ganti
<myBucketName>dengan nama bucket yang sebenarnya.{ "Statement": [ { "Action": [ "oss:Get*", "oss:List*" ], "Effect": "Allow", "Resource": [ "acs:oss:*:*:<myBucketName>", "acs:oss:*:*:<myBucketName>/*" ] } ], "Version": "1" }OSS kebijakan baca/tulis
Ganti
<myBucketName>dengan nama bucket yang sebenarnya.{ "Statement": [ { "Action": "oss:*", "Effect": "Allow", "Resource": [ "acs:oss:*:*:<myBucketName>", "acs:oss:*:*:<myBucketName>/*" ] } ], "Version": "1" }Jika Anda ingin membuat PV di konsol, Anda juga memerlukan izin
oss:ListBuckets.{ "Effect": "Allow", "Action": "oss:ListBuckets", "Resource": "*" }(Opsional) Jika Anda menggunakan ID CMK tertentu yang dikelola oleh KMS untuk mengenkripsi objek OSS, Anda juga harus memberikan izin KMS kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Gunakan ID CMK tertentu yang dikelola oleh KMS untuk mengenkripsi data.
Lampirkan kebijakan akses ke pengguna RAM.
Buka halaman Users di Konsol RAM, temukan pengguna yang Anda buat, dan di kolom Actions, klik Add Permissions.
Di bagian Policies, cari dan pilih kebijakan akses yang Anda buat.
AccessKey yang Anda buat akan disimpan sebagai Secret untuk PV.
Buka halaman Users di Konsol RAM, klik nama pengguna RAM Anda, lalu di bagian AccessKey, klik Create AccessKey.
Ikuti petunjuk di layar untuk membuat AccessKey. Salin dan simpan dengan aman ID AccessKey dan Rahasia AccessKey.
Langkah 2: Buat PV
Buat PV untuk mendaftarkan bucket OSS yang sudah ada ke kluster Anda.
Gunakan RRSA
Buat file bernama
pv-oss-rrsa.yaml.apiVersion: v1 kind: PersistentVolume metadata: # Nama PV. name: pv-oss # Label PV. labels: alicloud-pvname: pv-oss spec: capacity: # Kapasitas volume persisten. storage: 10Gi # Mode akses. accessModes: - ReadOnlyMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com # Harus sama dengan nama PV (metadata.name). volumeHandle: pv-oss volumeAttributes: # Ganti dengan nama bucket Anda. bucket: "your-bucket-name" # Direktori root atau subdirektori bucket yang akan dipasang. path: / # Titik akhir wilayah tempat bucket berada. url: "http://oss-cn-hangzhou-internal.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" authType: "rrsa" # Peran RAM yang sebelumnya Anda buat atau modifikasi. roleName: "demo-role-for-rrsa" # Versi signature untuk permintaan OSS. sigVersion: "v4"Parameter
Deskripsi
storageKapasitas volume persisten OSS. Nilai ini hanya digunakan untuk mencocokkan PV dengan PVC.
accessModesMenentukan mode akses. Nilai yang valid meliputi
ReadOnlyManydanReadWriteMany.Jika Anda mengatur parameter ini ke
ReadOnlyMany, ossfs memasang bucket OSS dalam mode read-only.persistentVolumeReclaimPolicyKebijakan pemulihan PV. Volume persisten OSS hanya mendukung
Retain. Artinya, ketika PVC dihapus, PV dan data di bucket OSS tetap dipertahankan.driverJenis driver. Saat menggunakan plugin CSI OSS Alibaba Cloud, atur bidang ini ke
ossplugin.csi.alibabacloud.com.volumeHandleHarus sama dengan nama PV yang ditentukan di
metadata.name.bucketBucket OSS yang akan dipasang.
pathVersi komponen CSI harus v1.14.8.32-c77e277b-aliyun atau lebih baru.
Jalur pemasangan relatif terhadap direktori root bucket. Nilai default adalah
/, yang memasang seluruh bucket.Jika versi ossfs lebih awal dari 1.91,
pathyang ditentukan harus ada di bucket OSS. Untuk informasi lebih lanjut, 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 titik akhir akses berbeda:
Internal:
http://oss-{{regionName}}-internal.aliyuncs.comatauhttps://oss-{{regionName}}-internal.aliyuncs.com.CatatanFormat 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.
otherOptsParameter kustom untuk volume persisten OSS, dalam format
-o *** -o ***. Contoh:-o umask=022 -o max_stat_cache_size=100000 -o allow_other.authTypeAtur parameter ini ke
rrsauntuk menggunakan RRSA sebagai autentikasi.roleNamePeran RAM yang sebelumnya Anda buat atau modifikasi.
Untuk mengonfigurasi izin berbeda untuk PV berbeda, Anda dapat membuat peran RAM berbeda dan menentukan nilai
roleNameberbeda di PV.sigVersionVersi signature untuk permintaan yang dikirim ke server OSS.
"v1"(Default): Menggunakan Signature Version 1 OSS."v4"(Direkomendasikan): Menggunakan Signature Version 4 OSS.
Jika autentikasi RRSA default tidak memenuhi kebutuhan Anda (misalnya, jika Anda menggunakan ServiceAccount non-default atau OIDC pihak ketiga), Anda dapat memodifikasi konfigurasi PV untuk menentukan ARN atau ServiceAccount tertentu. Untuk informasi lebih lanjut, lihat Bagaimana cara menggunakan ARN atau ServiceAccount tertentu dengan autentikasi RRSA?.
Buat PV.
kubectl create -f pv-oss-rrsa.yaml
Gunakan AccessKey
Gunakan kubectl
Buat file bernama
oss-secret.yamluntuk menyimpan AccessKey dari Langkah 1 sebagai Secret Kubernetes untuk PV.apiVersion: v1 kind: Secret metadata: name: oss-secret # Harus sesuai dengan namespace aplikasi. namespace: default stringData: # Ganti dengan ID AccessKey Anda. akId: <your AccessKey ID> # Ganti dengan Rahasia AccessKey Anda. akSecret: <your AccessKey Secret>Buat Secret.
kubectl create -f oss-secret.yamlBuat file bernama
pv-oss-ram.yaml.apiVersion: v1 kind: PersistentVolume metadata: # Nama PV. name: pv-oss # Label PV. labels: alicloud-pvname: pv-oss spec: capacity: storage: 10Gi accessModes: - ReadOnlyMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com # Harus sama dengan nama PV (metadata.name). volumeHandle: pv-oss # Menentukan objek Secret yang menyediakan kredensial AccessKey. nodePublishSecretRef: name: oss-secret namespace: default volumeAttributes: # Ganti dengan nama bucket Anda. bucket: "your-bucket-name" url: "http://oss-cn-hangzhou-internal.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" path: "/" # Versi signature untuk permintaan OSS. "v4" direkomendasikan. sigVersion: "v4"Parameter
Deskripsi
storageKapasitas volume persisten OSS. Nilai ini hanya digunakan untuk mencocokkan PV dengan PVC.
accessModesMenentukan mode akses. Nilai yang valid meliputi
ReadOnlyManydanReadWriteMany.Jika Anda mengatur parameter ini ke
ReadOnlyMany, ossfs memasang bucket OSS dalam mode read-only.persistentVolumeReclaimPolicyKebijakan pemulihan PV. Volume persisten OSS hanya mendukung
Retain. Artinya, ketika PVC dihapus, PV dan data di bucket OSS tetap dipertahankan.driverJenis driver. Saat menggunakan plugin CSI OSS Alibaba Cloud, atur bidang ini ke
ossplugin.csi.alibabacloud.com.nodePublishSecretRefSecret yang berisi kredensial AccessKey untuk memasang PV.
volumeHandleHarus sama dengan nama PV yang ditentukan di
metadata.name.bucketBucket OSS yang akan dipasang.
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 titik akhir akses berbeda:
Internal:
http://oss-{{regionName}}-internal.aliyuncs.comatauhttps://oss-{{regionName}}-internal.aliyuncs.com.CatatanFormat 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.
otherOptsParameter kustom untuk volume persisten OSS, dalam format
-o *** -o ***. Contoh:-o umask=022 -o max_stat_cache_size=100000 -o allow_other.pathVersi komponen CSI harus v1.14.8.32-c77e277b-aliyun atau lebih baru.
Jalur pemasangan relatif terhadap direktori root bucket. Nilai default adalah
/, yang memasang seluruh bucket.Jika versi ossfs lebih awal dari 1.91,
pathyang ditentukan harus ada di bucket OSS. Untuk informasi lebih lanjut, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.sigVersionVersi signature untuk permintaan yang dikirim ke server OSS.
"v1"(Default): Menggunakan Signature Version 1 OSS."v4"(Direkomendasikan): Menggunakan Signature Version 4 OSS.
Buat PV.
kubectl create -f pv-oss-ram.yaml
Konsol
Simpan AccessKey dari Langkah 1 sebagai Secret Kubernetes untuk PV.
-
Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Klik Create from YAML dan ikuti petunjuk di layar untuk membuat Secret.
apiVersion: v1 kind: Secret metadata: name: oss-secret # Harus sesuai dengan namespace aplikasi. namespace: default stringData: # Ganti dengan ID AccessKey Anda. akId: <your AccessKey ID> # Ganti dengan Rahasia AccessKey Anda. akSecret: <your AccessKey Secret>
-
-
Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Pada halaman Persistent Volumes, klik Create. Atur PV Type ke OSS, konfigurasikan parameter sesuai petunjuk, lalu kirimkan konfigurasi.
Tabel berikut menjelaskan parameter utama.
Parameter
Deskripsi
Total capacity
Kapasitas volume persisten.
Access Mode
Menentukan mode akses. Nilai yang valid meliputi
ReadOnlyManydanReadWriteMany.Jika Anda mengatur parameter ini ke
ReadOnlyMany, ossfs memasang bucket OSS dalam mode read-only.Access credential
Secret yang berisi ID AccessKey dan Rahasia AccessKey dari Langkah 1.
Optional Parameters:
Parameter kustom untuk volume persisten OSS, dalam format
-o *** -o ***. Contoh:-o umask=022 -o max_stat_cache_size=100000 -o allow_other.Bucket ID:
Bucket OSS yang akan digunakan.
Konsol hanya menampilkan bucket yang dapat diakses oleh AccessKey yang dikonfigurasi.
OSS path
Versi komponen CSI harus v1.14.8.32-c77e277b-aliyun atau lebih baru.
Jalur pemasangan relatif terhadap direktori root bucket. Nilai default adalah
/, yang memasang seluruh bucket.Jika versi ossfs lebih awal dari 1.91,
pathyang ditentukan harus ada di bucket OSS. Untuk informasi lebih lanjut, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.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 titik akhir akses berbeda:
Internal:
http://oss-{{regionName}}-internal.aliyuncs.comatauhttps://oss-{{regionName}}-internal.aliyuncs.com.CatatanFormat 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.
Secara default, konsol menggunakan HTTP untuk mengakses OSS melalui jaringan internal. Untuk menggunakan HTTPS, Anda harus membuat PV menggunakan kubectl.
Langkah 3: Buat PVC
Buat PersistentVolumeClaim (PVC) untuk meminta kapasitas penyimpanan bagi aplikasi Anda.
kubectl
Buat file bernama
pvc-oss.yaml.apiVersion: v1 kind: PersistentVolumeClaim metadata: # Nama PVC. name: pvc-oss namespace: default spec: # Konfigurasikan mode akses. ReadOnlyMany menunjukkan bahwa ossfs memasang bucket OSS dalam mode read-only. accessModes: - ReadOnlyMany resources: requests: # Kapasitas penyimpanan yang diminta. Nilai ini tidak boleh melebihi kapasitas PersistentVolume. storage: 10Gi # Tambahkan baris ini untuk secara eksplisit menentukan bahwa tidak ada StorageClass yang digunakan. storageClassName: "" selector: matchLabels: # Cocokkan PV berdasarkan label-nya. alicloud-pvname: pv-ossBuat PVC.
kubectl create -f pvc-oss.yamlPeriksa status PVC.
kubectl get pvc pvc-ossOutput mengonfirmasi bahwa PVC terikat ke PV.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-oss Bound pv-oss 10Gi ROX <unset> 6s
Konsol
-
Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Pada halaman Persistent Volume Claims, klik Create, pilih OSS sebagai PVC Type, dan ikuti petunjuk di layar untuk mengonfigurasi parameter serta mengirimkan permintaan.
Tabel berikut menjelaskan parameter utama.
Parameter
Deskripsi
Allocation Mode
Pilih Use Existing PersistentVolume.
Jika Anda belum membuat volume persisten, Anda dapat mengatur Allocation Mode ke Create PV dan mengonfigurasi parameter untuk volume baru.
Total capacity
Kapasitas penyimpanan PVC, yang tidak boleh melebihi kapasitas PersistentVolume.
Langkah 4: Buat aplikasi dan pasang volume
Untuk memasang volume, referensikan PVC di aplikasi Anda.
kubectl
Buat file
oss-workload.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: oss-workload 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 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-workload.yamlVerifikasi pemasangan.
Konfirmasi bahwa Pod sedang Berjalan.
kubectl get pod -l app=nginxAkses Pod dan periksa titik pemasangan.
kubectl exec -it <pod-name> -- ls /dataOutput harus menampilkan file di jalur pemasangan OSS.
Konsol
-
Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Di pojok kanan atas halaman Deployments, klik Create from Image.
Klik Create from Image dan ikuti petunjuk di layar untuk mengonfigurasi parameter aplikasi.
Parameter utama dijelaskan dalam tabel berikut. Untuk parameter lain, Anda dapat menggunakan nilai default. Untuk informasi lebih lanjut, lihat Buat Deployment.
Halaman konfigurasi
Parameter
Deskripsi
Basic Information
Replicas:
Jumlah replika Pod untuk Deployment.
Container
Image name
Alamat gambar kontainer untuk aplikasi, seperti
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6.Required Resources
Jumlah vCPU dan memori yang dialokasikan untuk setiap kontainer.
Volumes
Klik Add PVC lalu konfigurasikan parameter.
Mount Source: Pilih PVC yang Anda buat sebelumnya.
Container Path: Jalur dalam kontainer tempat volume akan dipasang, seperti
/data.
Labels and Annotations
Pod label
Misalnya, atur kunci ke 'app' dan nilai ke 'nginx'.
Periksa status penerapan aplikasi.
Pada halaman Deployments, klik nama aplikasi Anda. Pada tab Pods, verifikasi bahwa Pod memiliki status Running.
Langkah 5: Verifikasi penyimpanan bersama dan persisten
Verifikasi penyimpanan bersama
Untuk memverifikasi penyimpanan bersama, buat file di satu Pod lalu lihat di Pod lain.
Dapatkan nama Pod aplikasi.
kubectl get pod -l app=nginxContoh ini menggunakan Pod
oss-workload-66fbb85b67-d****:ReadWriteMany: Buat file tmpfile di jalur/data.kubectl exec oss-workload-66fbb85b67-d**** -- touch /data/tmpfileReadOnlyMany: Unggah filetmpfileke jalur yang sesuai di bucket OSS menggunakan konsol OSS atau dengan mengunggah file dengan cp.
Periksa keberadaan file di jalur pemasangan Pod lain.
Ambil contoh Pod bernama
oss-workload-66fbb85b67-l****dengan jalur pemasangandata.kubectl exec oss-workload-66fbb85b67-l**** -- ls /data | grep tmpfileKehadiran file dalam output mengonfirmasi bahwa Pod dapat berbagi data.
tmpfileJika Anda tidak melihat output yang diharapkan, pastikan komponen CSI Anda versi v1.20.7 atau lebih baru.
Verifikasi penyimpanan persisten
Untuk memverifikasi penyimpanan persisten, hapus Pod lalu periksa apakah file tetap ada setelah Pod dibuat ulang secara otomatis.
Hapus Pod aplikasi. Pengontrol Deployment secara otomatis membuatnya ulang.
kubectl delete pod oss-workload-66fbb85b67-d****Periksa status Pod. Tunggu hingga Pod baru mulai dan menjadi
Running.kubectl get pod -l app=nginxLihat file di jalur
/data.Contoh ini menggunakan Pod bernama
oss-workload-66fbb85b67-z****dengan jalur pemasangandata.kubectl exec oss-workload-66fbb85b67-z**** -- ls /data | grep tmpfileOutput menunjukkan file
tmpfilemasih ada, yang mengonfirmasi bahwa data tetap ada meskipun Pod dibuat ulang.tmpfile
Dampak yang diketahui
Risiko integritas data
Risiko konsistensi tulis konkuren: Untuk meningkatkan stabilitas tulis, kami merekomendasikan meningkatkan komponen CSI ke v1.28 atau lebih baru. Namun, dalam skenario tulis konkuren file tunggal, fitur "overwrite upload" OSS masih dapat menimpa data. Anda harus memastikan konsistensi data di lapisan aplikasi.
Risiko sinkronisasi dan penghapusan tidak sengaja: Saat volume dipasang, menghapus atau memodifikasi file di jalur pemasangan pada Pod aplikasi atau node host secara langsung menyinkronkan perubahan tersebut dengan file sumber di Bucket OSS. Untuk mencegah penghapusan data tidak sengaja, kami merekomendasikan mengaktifkan Pengendalian versi untuk Bucket OSS Anda.
Risiko stabilitas aplikasi
Risiko OOM: Saat Anda melakukan operasi
readdir(seperti perintahlsdalam skrip shell) pada sejumlah besar file (misalnya, lebih dari 100.000, tergantung pada memori node) untuk pertama kalinya, ossfs memuat semua metadata sekaligus dan mengonsumsi banyak memori. Hal ini dapat menyebabkan proses di-OOM Killed dan membuat titik pemasangan tidak tersedia.Untuk mengurangi risiko ini, kami merekomendasikan memasang subdirektori Bucket OSS atau mengoptimalkan struktur direktori Anda.
Waktu pemasangan yang lama: Mengonfigurasi
securityContext.fsgroupdalam aplikasi menyebabkan kubelet secara rekursif memodifikasi izin file (chmod/chown) saat memasang volume. Jika volume berisi banyak file, waktu pemasangan akan sangat lama, yang dapat menyebabkan penundaan startup Pod yang parah.Jika Anda harus mengonfigurasi parameter ini tetapi ingin mengurangi waktu pemasangan, lihat Waktu pemasangan yang meningkat untuk volume OSS.
Risiko invalidasi kunci (autentikasi AccessKey): Jika AccessKey yang dirujuk oleh PV menjadi tidak valid atau izinnya berubah, aplikasi terkait langsung kehilangan akses.
Untuk memulihkan akses, Anda harus memperbarui kredensial di Secret dan me-restart Pod aplikasi untuk memaksa remount. Hal ini menyebabkan gangguan layanan, jadi lakukan operasi ini selama jendela pemeliharaan. Untuk informasi lebih lanjut, lihat Solusi.
Risiko biaya
Biaya bagian: Saat mengunggah file lebih besar dari 10 MB, ossfs melakukan unggah multi-bagian, membagi file menjadi bagian-bagian. Jika unggahan terputus secara tak terduga, misalnya karena restart aplikasi, Anda harus menghapus bagian secara manual atau menghapusnya menggunakan aturan siklus hidup untuk menghindari biaya penyimpanan dari bagian yang tidak lengkap.
Pembersihan sumber daya
Untuk menghindari biaya tak terduga dan memastikan keamanan data, ikuti langkah-langkah berikut untuk melepaskan sumber daya yang tidak diperlukan.
Hapus workload
Tindakan: Hapus semua aplikasi, seperti Deployments dan StatefulSets, yang menggunakan PVC. Tindakan ini menghentikan Pod dan melepas pemasangan volume.
Contoh perintah:
kubectl delete deployment <your-deployment-name>
Hapus PVC
Tindakan: Hapus PVC yang terkait dengan aplikasi Anda. Untuk PV statis OSS, kebijakan pemulihan (
persistentVolumeReclaimPolicy) hanya mendukungRetain. Oleh karena itu, saat Anda menghapus PVC, PV yang terikat masuk ke statusReleased, tetapi Bucket OSS backend dan datanya tetap dipertahankan.Contoh perintah:
kubectl delete pvc <your-pvc-name>
Hapus PV
Tindakan: Hapus PV
Released. Tindakan ini hanya menghapus sumber daya PV dari Kubernetes dan tidak menghapus data di Bucket OSS backend.Contoh perintah:
kubectl delete pv <your-pv-name>
Hapus Secret (Opsional)
Tindakan: Hapus Secret yang digunakan untuk memasang volume OSS. Tindakan ini hanya menghapus Secret dari Kubernetes dan tidak menghapus data apa pun dari Bucket OSS backend.
Contoh perintah:
kubectl delete secret <your-secret-name>
Dokumen terkait
Kelola volume OSS menggunakan CNFS untuk meningkatkan kinerja dan QoS-nya. Untuk informasi lebih lanjut, lihat Kelola siklus hidup volume OSS.
Aktifkan enkripsi sisi server untuk melindungi data sensitif saat disimpan di OSS. Untuk informasi lebih lanjut, 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 kuat untuk tulis acak dan konkuren dibandingkan ossfs 2.0. Namun, ossfs 2.0 menawarkan kinerja lebih baik untuk baca dan tulis berurutan.