All Products
Search
Document Center

Container Service for Kubernetes:Mount a static OSS volume using ossfs 1.0

Last Updated:Sep 16, 2026

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.

Penting
  • 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

  1. Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.

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

    Penting

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

Lihat langkah-langkahnya

  1. Buat peran RAM.

    1. Buka halaman Create Role di Konsol RAM. Untuk Principal Type, pilih IdP. Lalu, klik Switch to Policy Editor untuk membuka Visual Editor.

    2. Untuk Principal, pilih IdP. Klik Edit dan konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut.

      Konfigurasikan parameter utama dan gunakan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk penyedia identitas OIDC.

      Parameter

      Deskripsi

      IdP Type

      OIDC.

      IdP

      Pilih ack-rrsa-<cluster_id>, di mana <cluster_id> adalah ID kluster Anda.

      Condition

      Tambahkan secara manual oidc:sub.

      Role Name

      Misalnya, masukkan demo-role-for-rrsa.

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

    1. Buka halaman Create Policy di Konsol RAM, alihkan ke JSON Editor, dan konfigurasikan skrip kebijakan.

      Jika Anda sudah memiliki peran RAM dengan izin OSS, Anda dapat menggunakannya kembali dengan memodifikasi kebijakan kepercayaannya. Untuk informasi lebih lanjut, lihat Gunakan peran RAM yang ada dan berikan izin.

      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"
      }
    2. (Opsional) Jika Anda menggunakan ID CMK tertentu yang dikelola oleh KMS untuk mengenkripsi objek OSS, Anda juga harus memberikan izin KMS kepada peran tersebut. Untuk informasi lebih lanjut, lihat Gunakan ID CMK tertentu yang dikelola oleh KMS untuk mengenkripsi data.

  3. Lampirkan kebijakan akses ke peran RAM.

    1. Buka halaman Roles di Konsol RAM, temukan peran yang Anda buat, dan di kolom Actions, klik Attach Policy.

    2. Di bagian Policies, cari dan pilih kebijakan akses yang Anda buat.

AccessKey

Buat pengguna RAM dengan izin untuk mengakses Bucket OSS target, lalu peroleh AccessKey untuk pengguna tersebut.

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

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

    1. 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": "*"
      }
    2. (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.

  3. Lampirkan kebijakan akses ke pengguna RAM.

    1. Buka halaman Users di Konsol RAM, temukan pengguna yang Anda buat, dan di kolom Actions, klik Add Permissions.

    2. Di bagian Policies, cari dan pilih kebijakan akses yang Anda buat.

  4. AccessKey yang Anda buat akan disimpan sebagai Secret untuk PV.

    1. Buka halaman Users di Konsol RAM, klik nama pengguna RAM Anda, lalu di bagian AccessKey, klik Create AccessKey.

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

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

    storage

    Kapasitas volume persisten OSS. Nilai ini hanya digunakan untuk mencocokkan PV dengan PVC.

    accessModes

    Menentukan mode akses. Nilai yang valid meliputi ReadOnlyMany dan ReadWriteMany.

    Jika Anda mengatur parameter ini ke ReadOnlyMany, ossfs memasang bucket OSS dalam mode read-only.

    persistentVolumeReclaimPolicy

    Kebijakan pemulihan PV. Volume persisten OSS hanya mendukung Retain. Artinya, ketika PVC dihapus, PV dan data di bucket OSS tetap dipertahankan.

    driver

    Jenis driver. Saat menggunakan plugin CSI OSS Alibaba Cloud, atur bidang ini ke ossplugin.csi.alibabacloud.com.

    volumeHandle

    Harus sama dengan nama PV yang ditentukan di metadata.name.

    bucket

    Bucket OSS yang akan dipasang.

    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, path yang ditentukan harus ada di bucket OSS. Untuk informasi lebih lanjut, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.

    url

    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.com atau https://oss-{{regionName}}-internal.aliyuncs.com.

      Catatan

      Format titik akhir akses internal vpc100-oss-{{regionName}}.aliyuncs.com sudah tidak digunakan lagi. Segera beralih ke format baru.

    • Publik: http://oss-{{regionName}}.aliyuncs.com atau https://oss-{{regionName}}.aliyuncs.com.

    otherOpts

    Parameter kustom untuk volume persisten OSS, dalam format -o *** -o ***. Contoh: -o umask=022 -o max_stat_cache_size=100000 -o allow_other.

    Perluas untuk detail

    • umask: Mengatur mask izin untuk file dan direktori.

      Misalnya, umask=022 mengubah izin file menjadi 755. Ini menyelesaikan masalah izin untuk file yang diunggah menggunakan 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: Mengatur batas atas entri cache metadata, misalnya 100000. Metadata di-cache di memori untuk meningkatkan kinerja operasi seperti ls dan stat.

      Namun, cache ini tidak dapat langsung 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 kurangi waktu kedaluwarsa cache dengan menggunakan parameter stat_cache_expire. Namun, hal ini dapat mengurangi kinerja baca.

    • allow_other: Mengizinkan pengguna selain pengguna yang memasang volume untuk mengakses file dan direktori di jalur pemasangan. Ini cocok untuk lingkungan bersama multi-pengguna di mana pengguna non-pemasang juga perlu mengakses data.

    Untuk informasi lebih lanjut tentang parameter opsional, lihat Opsi pemasangan dan Praktik terbaik untuk mengonfigurasi ossfs 1.0.

    authType

    Atur parameter ini ke rrsa untuk menggunakan RRSA sebagai autentikasi.

    roleName

    Peran RAM yang sebelumnya Anda buat atau modifikasi.

    Untuk mengonfigurasi izin berbeda untuk PV berbeda, Anda dapat membuat peran RAM berbeda dan menentukan nilai roleName berbeda di PV.

    sigVersion

    Versi signature untuk permintaan yang dikirim ke server 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?.
  2. Buat PV.

    kubectl create -f pv-oss-rrsa.yaml

Gunakan AccessKey

Gunakan kubectl

  1. Buat file bernama oss-secret.yaml untuk 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>
  2. Buat Secret.

    kubectl create -f  oss-secret.yaml
  3. Buat 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

    storage

    Kapasitas volume persisten OSS. Nilai ini hanya digunakan untuk mencocokkan PV dengan PVC.

    accessModes

    Menentukan mode akses. Nilai yang valid meliputi ReadOnlyMany dan ReadWriteMany.

    Jika Anda mengatur parameter ini ke ReadOnlyMany, ossfs memasang bucket OSS dalam mode read-only.

    persistentVolumeReclaimPolicy

    Kebijakan pemulihan PV. Volume persisten OSS hanya mendukung Retain. Artinya, ketika PVC dihapus, PV dan data di bucket OSS tetap dipertahankan.

    driver

    Jenis driver. Saat menggunakan plugin CSI OSS Alibaba Cloud, atur bidang ini ke ossplugin.csi.alibabacloud.com.

    nodePublishSecretRef

    Secret yang berisi kredensial AccessKey untuk memasang PV.

    volumeHandle

    Harus sama dengan nama PV yang ditentukan di metadata.name.

    bucket

    Bucket OSS yang akan dipasang.

    url

    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.com atau https://oss-{{regionName}}-internal.aliyuncs.com.

      Catatan

      Format titik akhir akses internal vpc100-oss-{{regionName}}.aliyuncs.com sudah tidak digunakan lagi. Segera beralih ke format baru.

    • Publik: http://oss-{{regionName}}.aliyuncs.com atau https://oss-{{regionName}}.aliyuncs.com.

    otherOpts

    Parameter kustom untuk volume persisten OSS, dalam format -o *** -o ***. Contoh: -o umask=022 -o max_stat_cache_size=100000 -o allow_other.

    Perluas untuk detail

    • umask: Mengatur mask izin untuk file dan direktori.

      Misalnya, umask=022 mengubah izin file menjadi 755. Ini menyelesaikan masalah izin untuk file yang diunggah menggunakan 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: Mengatur batas atas entri cache metadata, misalnya 100000. Metadata di-cache di memori untuk meningkatkan kinerja operasi seperti ls dan stat.

      Namun, cache ini tidak dapat langsung 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 kurangi waktu kedaluwarsa cache dengan menggunakan parameter stat_cache_expire. Namun, hal ini dapat mengurangi kinerja baca.

    • allow_other: Mengizinkan pengguna selain pengguna yang memasang volume untuk mengakses file dan direktori di jalur pemasangan. Ini cocok untuk lingkungan bersama multi-pengguna di mana pengguna non-pemasang juga perlu mengakses data.

    Untuk informasi lebih lanjut tentang parameter opsional, lihat Opsi pemasangan dan Praktik terbaik untuk mengonfigurasi ossfs 1.0.

    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, path yang ditentukan harus ada di bucket OSS. Untuk informasi lebih lanjut, lihat Fitur baru di ossfs 1.91 dan versi selanjutnya.

    sigVersion

    Versi signature untuk permintaan yang dikirim ke server OSS.

  4. Buat PV.

    kubectl create -f pv-oss-ram.yaml

Konsol

  1. Simpan AccessKey dari Langkah 1 sebagai Secret Kubernetes untuk PV.

    1. Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Configurations > Secrets.

    2. 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>
  2. Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > Persistent Volumes.

  3. 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 ReadOnlyMany dan ReadWriteMany.

    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.

    Perluas untuk detail

    • umask: Mengatur mask izin untuk file dan direktori.

      Misalnya, umask=022 mengubah izin file menjadi 755. Ini menyelesaikan masalah izin untuk file yang diunggah menggunakan 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: Mengatur batas atas entri cache metadata, misalnya 100000. Metadata di-cache di memori untuk meningkatkan kinerja operasi seperti ls dan stat.

      Namun, cache ini tidak dapat langsung 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 kurangi waktu kedaluwarsa cache dengan menggunakan parameter stat_cache_expire. Namun, hal ini dapat mengurangi kinerja baca.

    • allow_other: Mengizinkan pengguna selain pengguna yang memasang volume untuk mengakses file dan direktori di jalur pemasangan. Ini cocok untuk lingkungan bersama multi-pengguna di mana pengguna non-pemasang juga perlu mengakses data.

    Untuk informasi lebih lanjut tentang parameter opsional, lihat Opsi pemasangan dan Praktik terbaik untuk mengonfigurasi ossfs 1.0.

    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, path yang 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.com atau https://oss-{{regionName}}-internal.aliyuncs.com.

      Catatan

      Format titik akhir akses internal vpc100-oss-{{regionName}}.aliyuncs.com sudah tidak digunakan lagi. Segera beralih ke format baru.

    • Publik: http://oss-{{regionName}}.aliyuncs.com atau https://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

  1. 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-oss
  2. Buat PVC.

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

    kubectl get pvc pvc-oss

    Output 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

  1. Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Volumes > Persistent Volume Claims.

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

  1. 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-oss
  2. Buat aplikasi.

    kubectl create -f oss-workload.yaml
  3. Verifikasi pemasangan.

    • Konfirmasi bahwa Pod sedang Berjalan.

      kubectl get pod -l app=nginx
    • Akses Pod dan periksa titik pemasangan.

      kubectl exec -it <pod-name> -- ls /data

      Output harus menampilkan file di jalur pemasangan OSS.

Konsol

  1. Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

  2. Di pojok kanan atas halaman Deployments, klik Create from Image.

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

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

  1. Dapatkan nama Pod aplikasi.

    kubectl get pod -l app=nginx
  2. Contoh ini menggunakan Pod oss-workload-66fbb85b67-d****:

    • ReadWriteMany: Buat file tmpfile di jalur /data.

      kubectl exec oss-workload-66fbb85b67-d**** -- touch /data/tmpfile
    • ReadOnlyMany: Unggah file tmpfile ke jalur yang sesuai di bucket OSS menggunakan konsol OSS atau dengan mengunggah file dengan cp.

  3. Periksa keberadaan file di jalur pemasangan Pod lain.

    Ambil contoh Pod bernama oss-workload-66fbb85b67-l**** dengan jalur pemasangan data.

    kubectl exec oss-workload-66fbb85b67-l**** -- ls /data | grep tmpfile

    Kehadiran file dalam output mengonfirmasi bahwa Pod dapat berbagi data.

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

  1. Hapus Pod aplikasi. Pengontrol Deployment secara otomatis membuatnya ulang.

    kubectl delete pod oss-workload-66fbb85b67-d****
  2. Periksa status Pod. Tunggu hingga Pod baru mulai dan menjadi Running.

    kubectl get pod -l app=nginx
  3. Lihat file di jalur /data.

    Contoh ini menggunakan Pod bernama oss-workload-66fbb85b67-z**** dengan jalur pemasangan data.

    kubectl exec oss-workload-66fbb85b67-z**** -- ls /data | grep tmpfile

    Output menunjukkan file tmpfile masih 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 perintah ls dalam 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.fsgroup dalam 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

Pembersihan sumber daya

Untuk menghindari biaya tak terduga dan memastikan keamanan data, ikuti langkah-langkah berikut untuk melepaskan sumber daya yang tidak diperlukan.

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

  2. Hapus PVC

    • Tindakan: Hapus PVC yang terkait dengan aplikasi Anda. Untuk PV statis OSS, kebijakan pemulihan (persistentVolumeReclaimPolicy) hanya mendukung Retain. Oleh karena itu, saat Anda menghapus PVC, PV yang terikat masuk ke status Released, tetapi Bucket OSS backend dan datanya tetap dipertahankan.

    • Contoh perintah: kubectl delete pvc <your-pvc-name>

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

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