全部产品
Search
文档中心

Container Compute Service:Memasang volume OSS yang disediakan secara statis

更新时间:Nov 20, 2025

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.

ossfs 1.0

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.

ossfs 2.0

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

Kategori

Operasi/fitur

ossfs 1.0

ossfs 2.0

Operasi file dasar

open

Didukung

Didukung

flush

Didukung

Didukung

close

Didukung

Didukung

Pembacaan/penulisan file

read

Dukungan

Didukung

write

Mendukung penulisan acak (memerlukan konfigurasi cache disk)

Hanya mendukung penulisan berurutan (tidak memerlukan cache disk)

truncate

Didukung (ukuran file dapat disesuaikan)

Hanya mendukung penghapusan konten file

Operasi metadata file

create

Didukung

Didukung

unlink

Didukung

Didukung

rename

Didukung

Didukung

Operasi direktori

mkdir

Didukung

Didukung

readdir

Didukung

Didukung

rmdir

Didukung

Didukung

Izin dan properti

getattr

Didukung

Didukung

chmod

Didukung

Didukung (Operasi tidak menghasilkan error, tetapi pengaturan tidak berpengaruh)

chown

Didukung

Didukung (Operasi tidak menghasilkan error, tetapi pengaturan tidak berpengaruh)

utimes

Didukung

Didukung

Fitur tambahan

setxattr

Didukung

Tidak didukung

symlink

Didukung

Tidak didukung

lock

Tidak didukung

Tidak didukung

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 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.

Catatan

Buka halaman manajemen kluster ACS di konsol ACS. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Operations > Add-ons. Pada tab Storage, Anda dapat memeriksa apakah managed-csiprovisioner telah diinstal.

Catatan penggunaan

Catatan

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.

      Penting

      Dalam 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_optimize untuk mengoptimalkan kinerja. Untuk informasi selengkapnya, lihat Fitur optimasi readdir baru.

Buat bucket OSS dan dapatkan informasi bucket

  1. Buat bucket OSS.

    1. Masuk ke Konsol OSS. Di panel navigasi sebelah kiri, klik Buckets.

    2. Klik Create Bucket.

    3. 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.

  2. (Opsional) Untuk memasang subdirektori bucket OSS, Anda dapat membuat subdirektori tersebut.

    1. Di halaman Buckets, klik nama bucket tujuan.

    2. Di panel navigasi sebelah kiri halaman detail bucket, pilih Files > Objects.

    3. Klik Create Directory untuk membuat direktori yang diperlukan di bucket OSS.

  3. Dapatkan titik akhir bucket OSS.

    1. Di halaman Buckets, klik nama bucket tujuan.

    2. 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.

  4. Dapatkan ID AccessKey dan rahasia AccessKey untuk mengizinkan akses ke OSS. Untuk informasi selengkapnya, lihat Dapatkan pasangan AccessKey.

    Catatan

    Untuk 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

  1. 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"
    Catatan

    YAML di atas membuat secret dan PV. Secret menyimpan pasangan AccessKey untuk digunakan secara aman oleh PV. Ganti nilai akId dengan ID AccessKey Anda dan nilai akSecret dengan rahasia AccessKey Anda.

    Tabel berikut menjelaskan parameter PV.

    Parameter

    Deskripsi

    alicloud-pvname

    Label PV. Ini digunakan untuk mengikat PVC.

    storageClassName

    Konfigurasi ini hanya digunakan untuk mengikat PVC. Anda tidak perlu mengaitkan StorageClass aktual.

    storage

    Kapasitas penyimpanan volume OSS.

    Catatan

    Kapasitas volume OSS yang disediakan secara statis hanya untuk tujuan deklarasi. Kapasitas aktual tidak dibatasi. Kapasitas yang tersedia mengikuti jumlah yang ditampilkan di Konsol OSS.

    accessModes

    Mode akses.

    persistentVolumeReclaimPolicy

    Kebijakan reklamasi.

    driver

    Tipe driver. Di sini, diatur ke ossplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI OSS Alibaba Cloud digunakan.

    volumeHandle

    Pengidentifikasi unik PV. Harus konsisten dengan metadata.name.

    nodePublishSecretRef

    Mendapatkan pasangan AccessKey dari secret yang ditentukan untuk otorisasi.

    bucket

    Nama bucket OSS. Ganti nilai bucket dengan nama aktual bucket OSS Anda.

    url

    Titik akhir bucket OSS. Ganti nilai url dengan 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.

    otherOpts

    Masukkan parameter kustom untuk volume OSS dalam format -o *** -o ***, seperti -o umask=022 -o max_stat_cache_size=100000 -o allow_other.

    Lihat deskripsi

    • umask: Mengubah izin baca untuk file ossfs.

      Misalnya, umask=022 mengubah izin file ossfs menjadi 755. Hal ini menyelesaikan masalah izin untuk file yang diunggah melalui metode lain, seperti SDK atau Konsol OSS, yang memiliki izin default 640. Kami merekomendasikan mengonfigurasi parameter ini untuk pemisahan baca/tulis atau akses multi-pengguna.

    • max_stat_cache_size: Menetapkan batas atas untuk entri cache metadata (misalnya, 100000). Cache ini menyimpan metadata objek di memori untuk meningkatkan kinerja operasi seperti ls dan stat.

      Namun, cache ini tidak dapat segera mendeteksi modifikasi file yang dilakukan melalui Konsol OSS, SDK, atau ossutil. Hal ini dapat menyebabkan aplikasi membaca data yang tidak konsisten. Jika Anda memiliki persyaratan konsistensi data yang ketat, atur parameter ini ke 0 (untuk menonaktifkan cache) atau turunkan waktu kedaluwarsa cache dengan parameter stat_cache_expire. Hal ini akan mengurangi kinerja baca.

    • allow_other: Memungkinkan pengguna selain pengguna yang memasang untuk mengakses file dan direktori di titik pemasangan. Ini cocok untuk lingkungan berbagi multi-pengguna di mana pengguna non-pemasang juga perlu mengakses data.

    Untuk parameter opsional lainnya, lihat Opsi pemasangan dan Praktik terbaik konfigurasi ossfs 1.0.

  2. Jalankan perintah berikut untuk membuat secret dan PV:

    kubectl create -f oss-pv.yaml
  3. Periksa status PV.

    kubectl get pv

    Output 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

  1. 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-pv

    Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    storageClassName

    Konfigurasi ini hanya digunakan untuk mengikat PV. Anda tidak perlu mengaitkan StorageClass aktual. Harus konsisten dengan spec.storageClassName PV.

    accessModes

    Mode akses.

    storage

    Kapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh lebih tinggi dari kapasitas volume OSS.

    alicloud-pvname

    Label PV yang akan diikat. Harus konsisten dengan metadata.labels.alicloud-pvname PV.

  2. Anda dapat membuat PVC.

    kubectl create -f oss-pvc.yaml
  3. Anda dapat memeriksa PVC.

    kubectl get pvc

    Output 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

  1. 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-pvc
  2. Jalankan perintah berikut untuk membuat deployment dan memasang volume OSS:

    kubectl create -f oss-test.yaml
  3. Periksa status pod di deployment.

    kubectl get pod | grep oss-test

    Contoh output berikut menunjukkan bahwa dua pod dibuat.

    oss-test-****-***a   1/1     Running   0          28s
    oss-test-****-***b   1/1     Running   0          28s
  4. Lihat 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

  1. Masuk ke Konsol ACS.

  2. Di halaman Clusters, klik nama kluster untuk membuka halaman manajemen kluster.

  3. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Volumes > Persistent Volumes.

  4. Di halaman Persistent Volumes, klik Create.

  5. 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.

    Catatan

    Kapasitas 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

  1. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Volumes > Persistent Volume Claims.

  2. Di halaman Persistent Volume Claims, klik Create.

  3. 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

  1. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Workloads > Deployments.

  2. Di halaman Stateless, klik Create From Image.

  3. 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

  4. Periksa status deployment aplikasi.

    1. Di halaman Stateless, klik nama aplikasi.

    2. 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

  1. 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.
    Catatan

    YAML di atas membuat secret dan PV. Secret menyimpan pasangan AccessKey untuk digunakan secara aman oleh PV. Ganti nilai akId dengan ID AccessKey Anda dan nilai akSecret dengan rahasia AccessKey Anda.

    Tabel berikut menjelaskan parameter PV.

    Parameter

    Deskripsi

    alicloud-pvname

    Label PV. Ini digunakan untuk mengikat PVC.

    storageClassName

    Konfigurasi ini hanya digunakan untuk mengikat PVC. Anda tidak perlu mengaitkan StorageClass aktual.

    storage

    Kapasitas penyimpanan volume OSS.

    Catatan

    Kapasitas volume OSS yang disediakan secara statis hanya untuk tujuan deklarasi. Kapasitas aktual tidak dibatasi. Kapasitas yang tersedia mengikuti jumlah yang ditampilkan di Konsol OSS.

    accessModes

    Mode akses.

    persistentVolumeReclaimPolicy

    Kebijakan reklamasi.

    driver

    Tipe driver. Di sini, diatur ke ossplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI OSS Alibaba Cloud digunakan.

    volumeHandle

    Pengidentifikasi unik PV. Harus konsisten dengan metadata.name.

    nodePublishSecretRef

    Mendapatkan pasangan AccessKey dari secret yang ditentukan untuk otorisasi.

    fuseType

    Menentukan klien yang digunakan untuk pemasangan. Harus diatur ke ossfs2 untuk menggunakan klien ossfs 2.0.

    bucket

    Nama bucket OSS. Ganti nilai bucket dengan nama aktual bucket OSS Anda.

    url

    Titik akhir bucket OSS. Ganti nilai url dengan 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.

    otherOpts

    Masukkan 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.

  2. Jalankan perintah berikut untuk membuat secret dan PV:

    kubectl create -f oss-pv.yaml
  3. Periksa status PV.

    kubectl get pv

    Output 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

  1. 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-pv

    Parameter dijelaskan dalam tabel berikut.

    Parameter

    Deskripsi

    storageClassName

    Konfigurasi ini hanya digunakan untuk mengikat PV. Anda tidak perlu mengaitkan StorageClass aktual. Harus konsisten dengan spec.storageClassName PV.

    accessModes

    Mode akses.

    storage

    Kapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh lebih tinggi dari kapasitas volume OSS.

    alicloud-pvname

    Label PV yang akan diikat. Harus konsisten dengan metadata.labels.alicloud-pvname PV.

  2. Anda dapat membuat PVC.

    kubectl create -f oss-pvc.yaml
  3. Periksa status PVC.

    kubectl get pvc

    Output 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

  1. 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-pvc
  2. Jalankan perintah berikut untuk membuat deployment dan memasang volume OSS:

    kubectl create -f oss-test.yaml
  3. Periksa status pod di deployment.

    kubectl get pod | grep oss-test

    Contoh output berikut menunjukkan bahwa dua pod dibuat.

    oss-test-****-***a   1/1     Running   0          28s
    oss-test-****-***b   1/1     Running   0          28s
  4. Lihat 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.

  1. Lihat informasi pod.

    kubectl get pod | grep oss-test

    Contoh output:

    oss-test-****-***a   1/1     Running   0          40s
    oss-test-****-***b   1/1     Running   0          40s
  2. Verifikasi penyimpanan bersama.

    1. Buat file di salah satu pod.

      Dalam contoh ini, pod bernama oss-test-****-***a digunakan:

      kubectl exec oss-test-****-***a -- touch /data/test.txt
    2. Lihat file dari pod lain.

      Dalam contoh ini, pod bernama oss-test-****-***b digunakan:

      kubectl exec oss-test-****-***b -- ls /data

      Output berikut menunjukkan bahwa file baru test.txt dibagikan.

      test.txt
  3. Verifikasi bahwa data tetap ada setelah pod dibuat ulang.

    1. Hapus lalu buat ulang deployment.

      kubectl rollout restart deploy oss-test
    2. Lihat pod dan tunggu hingga pod baru dibuat.

      kubectl get pod | grep oss-test

      Contoh output:

      oss-test-****-***c   1/1     Running   0          67s
      oss-test-****-***d   1/1     Running   0          49s
    3. Dari 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 /data

      Output berikut menunjukkan bahwa data di bucket OSS masih ada dan dapat diambil dari direktori pemasangan di pod baru.

      test.txt