All Products
Search
Document Center

Container Compute Service:Gunakan volume OSS statis

Last Updated:Oct 09, 2026

Volume Object Storage Service (OSS) menyediakan penyimpanan bersama dan persisten bagi aplikasi Anda untuk data tidak terstruktur seperti file gambar, audio, dan video. Data yang ditulis ke bucket OSS tetap tersedia untuk setiap pod yang memasang volume tersebut dan tetap ada meskipun pod direstart.

Latar Belakang

OSS adalah solusi penyimpanan cloud yang aman, hemat biaya, berkapasitas tinggi, dan sangat andal. OSS ideal untuk menyimpan data yang jarang dimodifikasi setelah ditulis, serta data tidak terstruktur seperti file gambar, audio, dan video. Untuk informasi lebih lanjut, lihat Ikhtisar penyimpanan.

Klien volume OSS

Volume OSS adalah jenis volume yang menggunakan klien Filesystem in Userspace (FUSE) untuk memasang penyimpanan objek sebagai sistem file lokal (FS). Dibandingkan dengan penyimpanan lokal tradisional dan penyimpanan blok, volume OSS memiliki beberapa keterbatasan kompatibilitas POSIX. Alibaba Cloud Container Compute Service (ACS) mendukung klien volume OSS berikut.

Kasus penggunaan

Klien

Tipe

Deskripsi

Sebagian besar skenario, termasuk operasi baca/tulis dan konfigurasi izin pengguna.

ossfs 1.0

FUSE

Mendukung sebagian besar operasi POSIX, termasuk penulisan append, penulisan acak, dan pengaturan izin pengguna.

Skenario read-only atau beban kerja yang hanya melibatkan penulisan append berurutan. Contohnya termasuk pelatihan dan inferensi model AI, pemrosesan big data, dan kendaraan otonom.

ossfs 2.0

FUSE

Mendukung pembacaan penuh dan penulisan append berurutan. Ideal untuk skenario yang banyak membaca, seperti pelatihan dan inferensi model AI, pemrosesan big data, dan kendaraan otonom. Klien ini dapat meningkatkan performa pembacaan data secara signifikan.

Sebelum memilih klien, pertimbangkan hal-hal berikut:

  • Pola baca/tulis tidak diketahui — Jika Anda tidak yakin tentang pola baca/tulis beban kerja Anda, gunakan ossfs 1.0. Klien ini menawarkan kompatibilitas POSIX yang lebih baik dan memastikan stabilitas operasional yang lebih tinggi untuk beban kerja Anda.

  • Jalur baca dan tulis yang dapat dipisahkan — Untuk skenario di mana operasi baca dan tulis dapat dipisahkan, misalnya ketika baca dan tulis tidak terjadi secara bersamaan atau menargetkan file yang berbeda (misalnya, menyimpan checkpoint atau logging persisten), gunakan volume terpisah. Misalnya, pasang jalur read-only menggunakan volume ossfs 2.0 dan jalur tulis menggunakan volume ossfs 1.0.

  • Daya komputasi yang diperlukan oleh ossfs 2.0 — ossfs 2.0 hanya mendukung daya komputasi GPU. Untuk menggunakan daya komputasi CPU, submit a ticket untuk meminta akses.

  • Metode pemasangan yang didukung oleh ossfs 2.0 — ACS hanya mendukung pemasangan volume statis ossfs 2.0 menggunakan kubectl.

Dukungan API POSIX

Tabel berikut membandingkan dukungan API POSIX antara ossfs 1.0 dan ossfs 2.0.

Kategori fitur

Operasi

ossfs 1.0

ossfs 2.0

Operasi objek dasar

open

Didukung

Didukung

Operasi objek dasar

flush

Didukung

Didukung

Operasi objek dasar

close

Didukung

Didukung

Pembacaan dan penulisan file

read

Didukung

Didukung

Pembacaan dan penulisan file

write

Mendukung penulisan acak (memerlukan cache disk)

Hanya mendukung penulisan berurutan (tidak memerlukan cache disk)

Pembacaan dan penulisan file

truncate

Didukung (dapat dipotong menjadi ukuran apa pun)

Hanya mendukung pemotongan objek hingga panjang nol

Operasi meta file

create

Didukung

Didukung

Operasi meta file

unlink

Didukung

Didukung

Operasi meta file

rename

Didukung

Didukung

Operasi direktori

mkdir

Didukung

Didukung

Operasi direktori

readdir

Didukung

Didukung

Operasi direktori

rmdir

Didukung

Didukung

Izin dan atribut

getattr

Didukung

Didukung

Izin dan atribut

chmod

Didukung

Tidak didukung

Izin dan atribut

chown

Didukung

Tidak didukung

Izin dan atribut

utimes

Didukung

Didukung

Fitur tambahan

setxattr

Didukung

Tidak didukung

Fitur tambahan

symlink

Didukung

Tidak didukung

Fitur tambahan

lock

Tidak didukung

Tidak didukung

Tolok ukur performa

ossfs 2.0 memberikan peningkatan performa signifikan dibandingkan ossfs 1.0 dalam operasi baca/tulis berurutan dan pembacaan file kecil berkonkurensi tinggi.

  • Performa penulisan berurutan: Dalam skenario penulisan berurutan objek besar single-threaded, ossfs 2.0 memberikan bandwidth hampir 18 kali lipat dari ossfs 1.0.

  • Performa pembacaan berurutan: Dalam skenario pembacaan berurutan objek besar single-threaded atau multi-threaded (4 thread), ossfs 2.0 memberikan bandwidth lebih dari 3 kali lipat dari ossfs 1.0.

  • Performa pembacaan objek kecil konkuren: Dalam skenario pembacaan objek kecil berkonkurensi tinggi (128 thread), ossfs 2.0 memberikan bandwidth lebih dari 20 kali lipat dari ossfs 1.0.

    Jika performa baca/tulis, seperti latensi atau throughput, tidak memenuhi ekspektasi Anda, lihat Praktik terbaik untuk menyetel performa volume OSS.

Prasyarat

Add-on managed-csiprovisioner telah diinstal di kluster ACS.

Catatan

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

Catatan

Catatan berikut terutama berlaku untuk skenario baca/tulis umum yang menggunakan klien ossfs 1.0. Klien ossfs 2.0 berfokus pada pembacaan dan hanya mendukung subset operasi POSIX.

  • ACS hanya mendukung volume OSS statis, bukan volume dinamis.

  • Hard link tidak didukung.

  • Anda tidak dapat memasang bucket yang kelas penyimpanannya adalah Archive, Cold Archive, atau Deep Cold Archive.

  • Penulisan acak atau append ke file akan membuat file baru secara lokal lalu mengunggah ulang ke server OSS. Karena sifat penyimpanan objek, perhatikan hal berikut:

    • Operasi rename untuk file dan direktori tidak bersifat atomik.

    • Hindari penulisan konkuren atau operasi seperti kompresi dan dekompresi langsung di direktori mount. Koordinasikan penulisan konkuren di sisi klien, misalnya dengan melakukan serialisasi penulisan yang menarget objek yang sama. Jika tidak, penulisan konkuren, kompresi, dan dekompresi di direktori mount dapat menyebabkan inkonsistensi data atau metadata, dan ACS tidak melindungi terhadap inkonsistensi semacam itu.

  • Secara default, operasi readdir pada volume ossfs 1.0 mengirim banyak permintaan HeadObject untuk mengambil informasi ekstensi semua objek dalam direktori, yang dapat menurunkan performa ossfs secara keseluruhan di direktori dengan banyak file. Jika beban kerja Anda tidak sensitif terhadap atribut file seperti izin, Anda dapat mengaktifkan parameter -o readdir_optimize untuk meningkatkan performa. Untuk informasi lebih lanjut, lihat Optimasi readdir.

Buat bucket OSS dan dapatkan detailnya

  1. Buat bucket OSS.

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

    2. Klik Create Bucket.

    3. Di panel Create Bucket, konfigurasikan parameter yang diperlukan lalu klik tombol Create.

      Tabel berikut menjelaskan parameter utama. Untuk informasi lebih lanjut, lihat Buat bucket.

      Parameter

      Deskripsi

      Bucket Name

      Masukkan nama kustom. Nama bucket harus unik secara global di OSS dan tidak dapat diubah setelah dibuat. Ikuti persyaratan format yang ditampilkan di UI.

      Region

      Pilih Specific Region dan pilih wilayah yang sama dengan kluster ACS Anda. Hal ini memungkinkan pod di kluster mengakses bucket melalui jaringan internal.

  2. (Opsional) Untuk memasang subdirektori dari bucket OSS, buat subdirektori tersebut terlebih dahulu.

    1. Di halaman Buckets, klik nama bucket target.

    2. Di halaman detail bucket, di panel navigasi sebelah kiri, pilih Object Management > Objects.

    3. Klik Create Directory untuk membuat direktori di bucket sesuai kebutuhan.

  3. Dapatkan endpoint bucket OSS.

    1. Di halaman Buckets, klik nama bucket target.

    2. Di halaman detail bucket, klik tab Overview. Di bagian Port, salin endpoint yang sesuai dengan penerapan Anda:

      • Jika bucket OSS dan kluster ACS berada di wilayah yang sama, salin titik akhir internal.

      • Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, salin titik akhir publik.

  4. Dapatkan ID AccessKey dan Secret AccessKey untuk mengakses OSS. Untuk informasi lebih lanjut, lihat Dapatkan pasangan AccessKey.

    Jika Anda perlu memasang bucket OSS yang dimiliki oleh akun Alibaba Cloud lain, Anda harus mendapatkan pasangan AccessKey dari akun tersebut.

Pasang volume OSS

Pilih tab untuk klien yang Anda pilih. Setiap prosedur membuat Persistent Volume (PV) dan Persistent Volume Claim (PVC), lalu memasang volume tersebut di aplikasi.

Volume ossfs 1.0

kubectl

Langkah 1: Buat PV
  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 ini membuat Secret dan PV. Secret menyimpan pasangan AccessKey Anda, yang digunakan PV untuk akses aman. Ganti nilai akId dan akSecret dengan ID AccessKey dan Secret AccessKey aktual Anda.

    Tabel berikut menjelaskan parameter PV:

    Parameter

    Deskripsi

    alicloud-pvname

    Label PV, digunakan untuk mengikatnya ke PVC.

    storageClassName

    Nilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada.

    storage

    Kapasitas volume OSS. Kapasitas yang ditentukan untuk volume OSS statis hanya bersifat deklaratif. Kapasitas aktual tidak dibatasi, dan kapasitas yang tersedia didasarkan pada penggunaan yang ditampilkan di Konsol OSS.

    accessModes

    Mode akses. Nilai yang valid: ReadOnlyMany, yang memungkinkan beberapa pod memasang volume sebagai read-only, dan ReadWriteMany, yang memungkinkan beberapa pod memasang volume sebagai read-write.

    persistentVolumeReclaimPolicy

    Kebijakan reclaim PV.

    driver

    Tipe driver. Atur ke ossplugin.csi.alibabacloud.com untuk menggunakan plugin Alibaba Cloud OSS Container Storage Interface (CSI).

    volumeHandle

    UID (identifier unik) PV. Ini harus sama dengan metadata.name.

    nodePublishSecretRef

    Merujuk ke Secret yang berisi pasangan AccessKey untuk otorisasi.

    bucket

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

    url

    Endpoint bucket OSS. Ganti nilai url dengan endpoint aktual bucket OSS Anda.

    • Jika bucket OSS dan kluster ACS berada di wilayah yang sama, gunakan titik akhir internal. Misalnya, oss-cn-shanghai-internal.aliyuncs.com.

    • Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, gunakan titik akhir publik. Misalnya, oss-cn-shanghai.aliyuncs.com.

    otherOpts

    Menentukan opsi pemasangan kustom untuk volume OSS dalam format -o *** -o ***. Misalnya, -o umask=022 -o max_stat_cache_size=100000 -o allow_other.

    Perluas untuk melihat detail

    • umask: mengubah izin yang digunakan ossfs untuk membaca file. Misalnya, umask=022 mengubah izin file ossfs menjadi 755. Ini menyelesaikan masalah izin yang tidak mencukupi di dalam titik mount untuk objek yang diunggah melalui cara lain, seperti SDK atau Konsol OSS, yang memiliki izin default 640. (Direkomendasikan) Atur opsi ini untuk pemisahan baca/tulis atau akses multi-pengguna.

    • max_stat_cache_size: mengatur jumlah maksimum entri dalam cache metadata, seperti 100000. Menyimpan cache metadata objek di memori meningkatkan performa operasi seperti ls dan stat. Namun, cache ini tidak langsung mendeteksi perubahan yang dilakukan melalui Konsol OSS, SDK, atau ossutil, sehingga aplikasi Anda dapat membaca data yang tidak konsisten. Jika Anda memiliki persyaratan konsistensi data yang ketat, atur ke 0 untuk menonaktifkan cache, atau gunakan parameter stat_cache_expire untuk memperpendek waktu kedaluwarsa cache. Kedua pengaturan ini mengurangi performa baca.

    • allow_other: memungkinkan pengguna selain pengguna yang memasang untuk mengakses file dan direktori di titik mount. Gunakan opsi ini di lingkungan berbagi multi-pengguna di mana pengguna selain pengguna yang memasang juga perlu mengakses data.

    Untuk konfigurasi lebih lanjut, lihat Opsi pemasangan dan Praktik terbaik.

  2. Buat Secret dan PV.

    kubectl create -f oss-pv.yaml
  3. Lihat 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

    Nilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada. Nilai ini harus sama dengan spec.storageClassName PV.

    accessModes

    Mode akses.

    storage

    Jumlah penyimpanan yang diminta. Nilai ini tidak boleh lebih besar dari kapasitas PV.

    alicloud-pvname

    Label PV yang akan diikat. Nilai ini harus sama dengan metadata.labels.alicloud-pvname PV.

  2. Buat PVC.

    kubectl create -f oss-pvc.yaml
  3. Lihat PVC.

    kubectl get pvc

    Output yang diharapkan menunjukkan bahwa PVC telah diikat ke PV yang dibuat di Langkah 1.

    NAME      STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    oss-pvc   Bound    oss-pv   20Gi       RWX            test           <unset>                 6s
Langkah 3: Buat aplikasi dan pasang volume
  1. Buat file bernama oss-test.yaml dengan konten berikut.

    Contoh YAML berikut membuat Deployment dengan dua pod. Kedua pod meminta penyimpanan menggunakan PVC bernama oss-pvc, dan jalur mount keduanya adalah /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: oss-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-oss
                mountPath: /data
          volumes:
            - name: pvc-oss
              persistentVolumeClaim:
                claimName: oss-pvc
  2. Buat Deployment dan pasang volume OSS.

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

    kubectl get pod | grep oss-test

    Output contoh menunjukkan bahwa dua pod telah dibuat.

    oss-test-****-***a   1/1     Running   0          28s
    oss-test-****-***b   1/1     Running   0          28s
  4. Periksa jalur mount.

    Perintah berikut mencantumkan data di titik mount bucket OSS. Secara default, outputnya kosong.

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

Konsol

Langkah 1: Buat PV
  1. Login 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, konfigurasikan parameter lalu klik tombol Create.

    Parameter

    Deskripsi

    Contoh

    PV Type

    Tipe volume. Pilih OSS.

    OSS

    Volume Name:

    Nama PV. Tentukan nama kustom sesuai persyaratan format yang ditampilkan di UI.

    oss-pv

    Capacity

    Kapasitas volume OSS. Kapasitas yang ditentukan untuk volume OSS statis hanya bersifat deklaratif. Kapasitas aktual tidak dibatasi, dan kapasitas yang tersedia didasarkan pada penggunaan yang ditampilkan di Konsol OSS.

    20Gi

    Access Mode

    Mode akses. Pilih opsi berdasarkan kebutuhan Anda:

    • ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh beberapa pod.

    • ReadWriteMany: Volume dapat dipasang sebagai read-write oleh beberapa pod.

    ReadWriteMany

    Access Certificate

    Untuk keamanan, simpan informasi AccessKey dalam Secret. Contoh ini menggunakan opsi Create Secret.

    • Create Secret

    • namespace: default

    • Name: oss-secret

    • AccessKey ID: ********

    • AccessKey Secret: ********

    Bucket ID:

    Pilih bucket OSS.

    oss-acs-***

    OSS Path

    Direktori yang akan dipasang. Secara default adalah direktori root (/). Jika Anda menentukan subdirektori, seperti /dir, pastikan direktori tersebut ada.

    /

    Endpoint:

    Endpoint bucket OSS.

    • Jika bucket OSS dan kluster ACS berada di wilayah yang sama, pilih opsi Internal Endpoint.

    • Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, pilih opsi Public Endpoint.

    Private Endpoint

    Setelah PV dibuat, Anda dapat melihat informasinya di halaman Persistent Volumes. PV belum diikat ke PVC.

Langkah 2: Buat PVC
  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 yang muncul, konfigurasikan parameter lalu klik tombol Create.

    Parameter

    Deskripsi

    Contoh

    PVC Type

    Tipe volume. Pilih OSS.

    OSS

    Name

    Nama PVC. Tentukan nama kustom sesuai persyaratan format yang ditampilkan di UI.

    oss-pvc

    Allocation Mode

    Mode alokasi. Pilih opsi Existing Volumes.

    Existing PV

    Existing Volumes

    Pilih PV yang telah Anda buat.

    oss-pv

    Capacity

    Jumlah penyimpanan yang diminta. Nilai ini tidak boleh melebihi kapasitas PV.

    20Gi

    Setelah PVC dibuat, Anda dapat melihatnya di halaman Persistent Volume Claims. PVC kini telah diikat ke PV (volume OSS).

Langkah 3: Buat aplikasi dan pasang volume
  1. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih Workloads > Deployments.

  2. Di halaman Deployments, klik tombol Create from Image.

  3. Konfigurasikan parameter untuk Deployment lalu klik tombol Create.

    Tabel berikut menjelaskan parameter utama. Pertahankan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat Deployment.

    Bagian

    Parameter

    Deskripsi

    Contoh

    Basic Information

    Application Name

    Nama Deployment. Tentukan nama kustom sesuai persyaratan format yang ditampilkan di UI.

    oss-test

    Basic Information

    Replicas:

    Jumlah replika (pod) untuk Deployment.

    2

    Container

    Image Name

    Alamat image yang digunakan untuk menerapkan aplikasi.

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    Container

    Required Resources

    Atur sumber daya vCPU dan memori yang diperlukan.

    0.25 vCPU, 0.5 GiB

    Volume

    Add PVC

    Klik tombol dan konfigurasikan parameter:

    • Mount Source: Pilih PVC yang telah Anda buat.

    • Container Path: Masukkan jalur kontainer tempat Anda ingin memasang bucket OSS.

    • Mount source: oss-pvc

    • Container path: /data

  4. Periksa status Deployment aplikasi.

    1. Di halaman Deployments, klik nama aplikasi.

    2. Di tab Pods, pastikan pod berada dalam status Running.

Volume ossfs 2.0

ACS hanya mendukung pemasangan volume statis ossfs 2.0 menggunakan kubectl.

Langkah 1: Buat PV

  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 # Secara eksplisit menentukan klien ossfs 2.0
          bucket: "<your OSS Bucket Name>"
          url: "<your OSS Bucket Endpoint>"
          otherOpts: "-o close_to_open=false" # Catatan: Opsi pemasangan yang didukung tidak kompatibel dengan klien ossfs 1.0.
    Catatan

    YAML ini membuat Secret dan PV. Secret menyimpan pasangan AccessKey Anda, yang digunakan PV untuk akses aman. Ganti nilai akId dan akSecret dengan ID AccessKey dan Secret AccessKey aktual Anda.

    Tabel berikut menjelaskan parameter PV:

    Parameter

    Deskripsi

    alicloud-pvname

    Label PV, digunakan untuk mengikatnya ke PVC.

    storageClassName

    Nilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada.

    storage

    Kapasitas volume OSS. Kapasitas yang ditentukan untuk volume OSS statis hanya bersifat deklaratif. Kapasitas aktual tidak dibatasi, dan kapasitas yang tersedia didasarkan pada penggunaan yang ditampilkan di Konsol OSS.

    accessModes

    Mode akses. Nilai yang valid: ReadOnlyMany, yang memungkinkan beberapa pod memasang volume sebagai read-only, dan ReadWriteMany, yang memungkinkan beberapa pod memasang volume sebagai read-write.

    persistentVolumeReclaimPolicy

    Kebijakan reclaim PV.

    driver

    Tipe driver. Atur ke ossplugin.csi.alibabacloud.com untuk menggunakan plugin Alibaba Cloud OSS Container Storage Interface (CSI).

    volumeHandle

    UID (identifier unik) PV. Ini harus sama dengan metadata.name.

    nodePublishSecretRef

    Merujuk ke Secret yang berisi pasangan AccessKey untuk otorisasi.

    fuseType

    Harus ossfs2 untuk klien ossfs 2.0.

    bucket

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

    url

    Endpoint bucket OSS. Ganti nilai url dengan endpoint aktual bucket OSS Anda.

    • Jika bucket OSS dan kluster ACS berada di wilayah yang sama, gunakan titik akhir internal. Misalnya, oss-cn-shanghai-internal.aliyuncs.com.

    • Jika bucket OSS tidak bergantung wilayah atau berada di wilayah berbeda dari kluster ACS, gunakan titik akhir publik. Misalnya, oss-cn-shanghai.aliyuncs.com.

    otherOpts

    Menentukan opsi pemasangan kustom untuk volume OSS dalam format -o *** -o ***. Misalnya, -o close_to_open=false.

    close_to_open: Dinonaktifkan secara default. Jika Anda mengaktifkannya, sistem akan mengirim permintaan GetObjectMeta ke OSS setiap kali file dibuka. Ini mengambil metadata terbaru dan menjaganya tetap mutakhir. Namun, dalam skenario yang melibatkan pembacaan banyak file kecil, kueri metadata yang sering dapat meningkatkan latensi secara signifikan.

    Untuk informasi lebih lanjut tentang parameter opsional, lihat Opsi pemasangan ossfs 2.0.

  2. Buat Secret dan PV.

    kubectl create -f oss-pv.yaml
  3. Lihat 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

    Nilai ini hanya untuk pengikatan PVC dan tidak perlu sesuai dengan objek StorageClass yang ada. Nilai ini harus sama dengan spec.storageClassName PV.

    accessModes

    Mode akses.

    storage

    Jumlah penyimpanan yang diminta. Nilai ini tidak boleh lebih besar dari kapasitas PV.

    alicloud-pvname

    Label PV yang akan diikat. Nilai ini harus sama dengan metadata.labels.alicloud-pvname PV.

  2. Buat PVC.

    kubectl create -f oss-pvc.yaml
  3. Lihat PVC.

    kubectl get pvc

    Output yang diharapkan menunjukkan bahwa PVC telah diikat ke PV yang dibuat di Langkah 1.

    NAME      STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    oss-pvc   Bound    oss-pv   20Gi       RWX            test           <unset>                 6s

Langkah 3: Buat aplikasi dan pasang volume

  1. Buat file bernama oss-test.yaml dengan konten berikut.

    Contoh YAML berikut membuat Deployment dengan dua pod. Kedua pod meminta penyimpanan menggunakan PVC bernama oss-pvc, dan jalur mount keduanya adalah /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: oss-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-oss
                mountPath: /data
          volumes:
            - name: pvc-oss
              persistentVolumeClaim:
                claimName: oss-pvc
  2. Buat Deployment dan pasang volume OSS.

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

    kubectl get pod | grep oss-test

    Output contoh menunjukkan bahwa dua pod telah dibuat.

    oss-test-****-***a   1/1     Running   0          28s
    oss-test-****-***b   1/1     Running   0          28s
  4. Periksa jalur mount.

    Perintah berikut mencantumkan data di titik mount bucket OSS. Secara default, outputnya kosong.

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

Verifikasi penyimpanan bersama dan penyimpanan persisten OSS

Deployment yang dibuat pada contoh sebelumnya berisi dua pod. Kedua pod memasang bucket OSS yang sama. Anda dapat memverifikasi penyimpanan bersama dan penyimpanan persisten sebagai berikut:

  • Untuk memverifikasi penyimpanan bersama, buat file di salah satu pod lalu periksa apakah file tersebut terlihat di pod lain.

  • Untuk memverifikasi penyimpanan persisten, restart Deployment lalu periksa apakah data asli masih dapat diakses dari pod baru.

  1. Dapatkan informasi pod.

    kubectl get pod | grep oss-test

    Output contoh:

    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.

      Contoh ini menggunakan pod bernama oss-test-****-***a.

      kubectl exec oss-test-****-***a -- touch /data/test.txt
    2. Periksa keberadaan file di pod lain.

      Contoh ini menggunakan pod bernama oss-test-****-***b.

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

    Output ini mengonfirmasi bahwa file test.txt dibagikan.

    test.txt
  3. Verifikasi penyimpanan persisten.

    1. Mulai ulang Penyebaran.

      kubectl rollout restart deploy oss-test
    2. Periksa status pod dan tunggu hingga pod baru memasuki status Running.

      kubectl get pod | grep oss-test

      Output contoh:

      oss-test-****-***c   1/1     Running   0          67s
      oss-test-****-***d   1/1     Running   0          49s
    3. Di salah satu pod baru, periksa apakah data di sistem file masih ada.

      Contoh ini menggunakan pod bernama oss-test-****-***c.

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

      Output ini mengonfirmasi bahwa data di bucket OSS tetap ada dan dapat diakses dari direktori mount pod baru.

      test.txt