全部产品
Search
文档中心

Container Service for Kubernetes:Pasang volume OSS statis menggunakan ossfs 2.0 di ACK

更新时间:Oct 30, 2025

Untuk aplikasi yang memerlukan penyimpanan persisten atau berbagi data antar pod, Anda dapat memasang Bucket Layanan Penyimpanan Objek (OSS) sebagai volume ossfs 2.0 menggunakan Persistent Volume (PV) dan Persistent Volume Claim (PVC) yang disediakan secara statis. Pendekatan ini memungkinkan kontainer aplikasi untuk membaca dan menulis data di OSS menggunakan antarmuka POSIX standar, seperti sistem file lokal. Ideal untuk skenario seperti analitik data besar, pelatihan AI, dan menyajikan konten statis.

Dibandingkan dengan ossfs 1.0, ossfs 2.0 unggul dalam performa baca dan tulis berurutan, menjadikannya ideal untuk memanfaatkan bandwidth tinggi dari OSS.

Untuk detail tentang performa, lihat benchmark performa klien ossfs 2.0.

Ikhtisar Alur Kerja

Proses untuk memasang volume ossfs 2.0 yang disediakan secara statis di kluster Container Service for Kubernetes (ACK) adalah sebagai berikut:

  1. Pilih metode autentikasi: Tentukan apakah akan menggunakan RAM Roles for Service Accounts (RRSA) atau AccessKey statis dan siapkan kredensial yang diperlukan.

    Perbandingan metode autentikasi

    • RRSA: Menyediakan keamanan lebih tinggi dengan menggunakan kredensial sementara yang berotasi otomatis dan mendukung isolasi izin pada tingkat pod. Metode ini cocok untuk lingkungan produksi dan multi-penyewa dengan persyaratan keamanan tinggi.

      Jika Anda menggunakan RRSA, pertama-tama buat dan otorisasi Peran Manajemen Akses Sumber Daya (RAM) khusus untuk akses OSS.

    • AccessKey: Metode ini mudah dikonfigurasi tetapi menggunakan kunci statis jangka panjang, yang menimbulkan risiko keamanan jika terpapar. Metode ini direkomendasikan hanya untuk pengujian atau lingkungan pengembangan.

      Jika Anda menggunakan AccessKey, pertama-tama buat Pengguna RAM, peroleh pasangan Kunci Aksesnya, dan simpan pasangan kunci tersebut sebagai Kubernetes Secret.

  2. Buat PV: Secara manual definisikan PV untuk mendaftarkan Bucket OSS yang ada dengan kluster. PV ini menentukan lokasi bucket (direktori root atau subdirektori tertentu), kapasitas penyimpanan, dan mode akses.

  3. Buat PVC: Buat PVC yang meminta sumber daya penyimpanan sesuai dengan PV yang Anda definisikan. Kubernetes akan mengikat PVC ke PV yang tersedia.

  4. Pasang volume di aplikasi Anda: Pasang PVC sebagai volume di direktori yang ditentukan dalam kontainer Anda.

Pertimbangan

  • Kesesuaian beban kerja: ossfs 2.0 dirancang untuk skenario read-only dan tulisan tambahan berurutan. Untuk skenario tulis acak atau bersamaan, konsistensi data tidak dapat dijamin. Kami merekomendasikan menggunakan ossfs 1.0 untuk kasus-kasus ini.

  • Keselamatan data: Setiap modifikasi atau penghapusan file di titik pemasangan ossfs (baik dari dalam pod maupun pada node host) segera disinkronkan dengan bucket OSS sumber. Untuk mencegah kehilangan data yang tidak disengaja, kami merekomendasikan mengaktifkan pengendalian versi untuk bucket.

  • Pemeriksaan kesehatan aplikasi: Konfigurasikan pemeriksaan kesehatan (liveness probe) untuk pod yang menggunakan volume OSS. Misalnya, verifikasi bahwa titik pemasangan masih dapat diakses. Jika pemasangan menjadi tidak sehat, pod akan otomatis dimulai ulang untuk memulihkan koneksi.

  • Manajemen unggah multipart: Saat mengunggah file besar (> 10 MB), ossfs secara otomatis menggunakan unggah multipart. Jika unggahan terputus, bagian yang tidak lengkap akan tetap berada di bucket. Hapus bagian-bagian ini secara manual atau konfigurasikan aturan siklus hidup untuk membersihkan bagian-bagian ini secara otomatis untuk menghemat biaya penyimpanan.

Metode 1: Autentikasi menggunakan RRSA

Dengan memanfaatkan RRSA, Anda dapat mencapai isolasi izin tingkat PV yang halus untuk mengakses sumber daya cloud, yang secara signifikan mengurangi risiko keamanan. Untuk detail, lihat Gunakan RRSA untuk mengotorisasi pod yang berbeda untuk mengakses layanan cloud yang berbeda.

Prasyarat

Langkah 1: Buat Peran RAM

Jika Anda sudah memasang volume OSS di kluster menggunakan RRSA, lewati langkah ini. Jika ini pertama kali, ikuti langkah-langkah berikut:

  1. Aktifkan fitur RRSA di Konsol ACK.

  2. Buat Peran RAM untuk OIDC IdP. Peran ini akan diasumsikan menggunakan RRSA.

    Tabel berikut mencantumkan parameter utama untuk peran contoh demo-role-for-rrsa:

    Parameter

    Deskripsi

    Identity Provider Type

    Pilih OIDC.

    Identity Provider

    Pilih penyedia yang terkait dengan kluster Anda, seperti ack-rrsa-<cluster_id>, di mana <cluster_id> adalah ID kluster aktual Anda.

    Condition

    • oidc:iss: Pertahankan nilai default.

    • oidc:aud: Pertahankan nilai default.

    • oidc:sub: Tambahkan kondisi berikut secara manual:

      • Key: Pilih oidc:sub.

      • Operator: Pilih StringEquals.

      • Value: Masukkan system:serviceaccount:ack-csi-fuse:csi-fuse-ossfs.

        Dalam nilai ini, ack-csi-fuse adalah namespace tempat klien ossfs berada, dan tidak dapat disesuaikan. csi-fuse-ossfs adalah nama akun layanan, dan dapat diubah sesuai kebutuhan.

        Untuk informasi lebih lanjut tentang cara memodifikasi nama akun layanan, lihat Bagaimana cara menggunakan ARN tertentu atau ServiceAccount dalam autentikasi RRSA?

    Role Name

    Masukkan demo-role-for-rrsa.

Langkah 2: Berikan izin kepada peran demo-role-for-rrsa

  1. Buat kebijakan kustom untuk akses OSS. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

    Pilih kebijakan read-only atau read/write berdasarkan kebutuhan Anda dan ganti mybucket dengan nama bucket Anda.

    • Kebijakan OSS read-only

      Lihat dokumen kebijakan OSS read-only

      {
          "Statement": [
              {
                  "Action": [
                      "oss:Get*",
                      "oss:List*"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ]
              }
          ],
          "Version": "1"
      }
    • Kebijakan OSS read/write

      Lihat dokumen kebijakan OSS read/write

      {
          "Statement": [
              {
                  "Action": "oss:*",
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ]
              }
          ],
          "Version": "1"
      }
  2. (Opsional) Jika Anda menggunakan ID CMK yang dikelola oleh KMS untuk mengenkripsi objek OSS, Anda juga harus mengonfigurasi izin KMS untuk Pengguna RAM. Untuk informasi lebih lanjut, lihat Operasi enkripsi.

  3. Berikan izin kepada peran demo-role-for-rrsa. Untuk informasi lebih lanjut, lihat Berikan izin kepada peran RAM.

    Catatan

    Anda juga dapat menggunakan peran RAM yang sudah ada yang telah diberikan izin OSS dengan memodifikasi kebijakan kepercayaannya. Untuk informasi lebih lanjut, lihat Gunakan dan berikan izin kepada peran RAM yang sudah ada.

Langkah 3: Buat PV

Buat PV untuk mendaftarkan Bucket OSS yang ada di kluster.

  1. Buat file bernama ossfs2-pv.yaml dengan konten berikut. Definisi PV ini memberi tahu Kubernetes cara mengakses Bucket OSS Anda menggunakan peran RRSA.

    PV berikut memasang Bucket OSS bernama cnfs-oss-test sebagai sistem file read-only 20 GB untuk pod di kluster guna digunakan.
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-ossfs2  # Nama PV
    spec:
      capacity:
        storage: 20Gi  # Tentukan kapasitas volume (nilai ini hanya untuk mencocokkan PVC)
      accessModes:  # Mode akses
        - ReadOnlyMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ossplugin.csi.alibabacloud.com
        volumeHandle: pv-ossfs2  # Harus sama dengan nama PV (metadata.name)
        volumeAttributes:
          fuseType: ossfs2
          bucket: cnfs-oss-test # Nama Bucket OSS
          path: /subpath  # Subdirektori untuk dipasang. Biarkan kosong untuk memasang direktori root.
          url: oss-cn-hangzhou-internal.aliyuncs.com  # Titik akhir wilayah tempat Bucket OSS berada
          otherOpts: "-o close_to_open=false"
          authType: "rrsa"
          roleName: "demo-role-for-rrsa"  # Peran RAM yang dibuat sebelumnya
    • Parameter dalam volumeAttributes:

      Parameter

      Wajib

      Deskripsi

      fuseType

      Ya

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

      bucket

      Ya

      Nama Bucket OSS yang ingin Anda pasang.

      path

      Tidak

      Subdirektori dalam Bucket OSS untuk dipasang. Jika tidak ditentukan, root bucket akan dipasang secara default.

      url

      Ya

      Titik endpoint akses untuk Bucket OSS.

      • Gunakan endpoint internal jika node kluster dan bucket berada di wilayah yang sama, atau jika koneksi Virtual Private Cloud (VPC) telah dibuat.

      • Gunakan endpoint publik jika node pemasangan dan bucket berada di wilayah yang berbeda.

      Berikut adalah format umum untuk endpoint akses yang berbeda:

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

        Format endpoint akses internal vpc100-oss-{{regionName}}.aliyuncs.com sudah tidak digunakan lagi. Beralihlah ke format baru sesegera mungkin.
      • Publik: http://oss-{{regionName}}.aliyuncs.com atau https://oss-{{regionName}}.aliyuncs.com.

      otherOpts

      Tidak

      Opsi pemasangan tambahan yang dilewatkan ke volume OSS, ditentukan sebagai string bendera yang dipisahkan spasi dalam format -o *** -o ***. Sebagai contoh, -o close_to_open=false.

      Opsi close-to-open mengontrol konsistensi metadata. Saat diatur ke false (default), metadata disimpan dalam cache untuk meningkatkan performa pembacaan file kecil. Saat diatur ke true, klien mengambil metadata segar dari OSS dengan mengirim permintaan GetObjectMeta setiap kali file dibuka, memastikan konsistensi waktu nyata dengan biaya peningkatan latensi dan panggilan API.

      Untuk parameter opsional lainnya, lihat opsi pemasangan ossfs 2.0.

      authType

      Ya

      Diatur ke rrsa untuk menyatakan bahwa metode autentikasi RRSA digunakan.

      roleName

      Ya

      Diatur ke nama Peran RAM yang Anda buat atau modifikasi.

      Untuk menetapkan izin berbeda untuk PV yang berbeda, buat Peran RAM terpisah untuk setiap set izin. Kemudian, dalam definisi setiap PV, gunakan parameter roleName untuk mengaitkannya dengan peran yang sesuai.

      Untuk menggunakan ARN tertentu atau ServiceAccount dengan metode autentikasi RRSA, lihat Bagaimana cara menggunakan ARN tertentu atau ServiceAccount dengan metode autentikasi RRSA?.
  2. Terapkan definisi PV.

    kubectl create -f ossfs2-pv.yaml
  3. Verifikasi status PV.

    kubectl get pv pv-ossfs2

    Keluaran menunjukkan bahwa status PV adalah Available.

    NAME        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
    pv-ossfs2   20Gi       ROX            Retain           Available                          <unset>                          15s

Langkah 4: Buat PVC

Buat PVC untuk mendeklarasikan kapasitas penyimpanan persisten yang diperlukan oleh aplikasi.

  1. Buat file bernama ossfs2-pvc-static.yaml dengan konten YAML berikut.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-ossfs2  # Nama PVC
      namespace: default
    spec:
      # Konfigurasi berikut harus konsisten dengan PV
      accessModes:
        - ReadOnlyMany
      resources:
        requests:
          storage: 20Gi
      volumeName: pv-ossfs2  # PV untuk diikat
  2. Buat PVC.

    kubectl create -f ossfs2-pvc-static.yaml
  3. Periksa status PVC.

    kubectl get pvc pvc-ossfs2

    Keluaran menunjukkan bahwa PVC terikat ke PV.

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

Langkah 5: Buat aplikasi dan pasang volume

Sekarang Anda dapat memasang PVC ke aplikasi.

  1. Buat file bernama ossfs2-test.yaml untuk mendefinisikan aplikasi Anda.

    Template YAML berikut membuat StatefulSet yang berisi satu pod. Pod tersebut meminta sumber daya penyimpanan melalui PVC bernama pvc-ossfs2 dan memasang volume ke path /data.

    Template YAML

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: ossfs2-test
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: ossfs2-test
      template:
        metadata:
          labels:
            app: ossfs2-test
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
            volumeMounts:
            - name: pvc-ossfs2
              mountPath: /data
          volumes:
            - name: pvc-ossfs2
              persistentVolumeClaim:
                claimName: pvc-ossfs2  # PVC untuk dirujuk
  2. Sebarkan aplikasi.

    kubectl create -f ossfs2-test.yaml
  3. Periksa status penyebaran pod.

    kubectl get pod -l app=ossfs2-test

    Keluaran yang diharapkan:

    NAME            READY   STATUS    RESTARTS   AGE
    ossfs2-test-0   1/1     Running   0          12m
  4. Verifikasi bahwa aplikasi dapat mengakses data di OSS.

    kubectl exec -it ossfs2-test-0 -- ls /data

    Keluaran harus menampilkan data di jalur pemasangan OSS.

Metode 2: Autentikasi menggunakan AccessKey

ACK mendukung autentikasi pemasangan volume OSS dengan menyimpan AccessKey statis di Secret Kubernetes. Pendekatan ini cocok untuk skenario di mana aplikasi tertentu memerlukan izin akses tetap jangka panjang.

  • Jika AccessKey yang dirujuk oleh PV dicabut atau izinnya diubah, aplikasi apa pun yang menggunakan volume akan segera kehilangan akses dan mengalami kesalahan izin. Untuk memulihkan akses, perbarui kredensial di Secret, lalu mulai ulang pod aplikasi untuk memaksa pemasangan ulang. Proses ini menyebabkan gangguan layanan singkat dan hanya boleh dilakukan selama jendela pemeliharaan terjadwal.

  • Untuk menghindari downtime terkait rotasi kunci manual, kami sangat merekomendasikan menggunakan metode autentikasi RRSA sebagai gantinya.

Prasyarat

Langkah 1: Buat Pengguna RAM dengan izin akses OSS dan peroleh pasangan AccessKey

Buat Pengguna RAM dan berikan izin

  1. Buat Pengguna RAM. Anda dapat melewati langkah ini jika sudah memiliki Pengguna RAM. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM.

  2. Buat kebijakan kustom untuk akses OSS. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

    Pilih kebijakan read-only atau read/write berdasarkan kebutuhan Anda dan ganti mybucket dengan nama bucket Anda.

    • Kebijakan OSS read-only

      Lihat dokumen kebijakan OSS read-only

      {
          "Statement": [
              {
                  "Action": [
                      "oss:Get*",
                      "oss:List*"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ]
              }
          ],
          "Version": "1"
      }
    • Kebijakan OSS read/write

      Lihat dokumen kebijakan OSS read/write

      {
          "Statement": [
              {
                  "Action": "oss:*",
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ]
              }
          ],
          "Version": "1"
      }
  3. (Opsional) Jika Anda menggunakan ID CMK yang dikelola oleh KMS untuk mengenkripsi objek OSS, Anda juga harus mengonfigurasi izin KMS untuk Pengguna RAM. Untuk informasi lebih lanjut, lihat Operasi enkripsi.

  4. Berikan izin OSS kepada Pengguna RAM. Untuk informasi lebih lanjut, lihat Berikan izin kepada Pengguna RAM.

  5. Buat AccessKey untuk Pengguna RAM. Untuk informasi lebih lanjut, lihat Dapatkan AccessKey.

Buat Secret untuk menyimpan kredensial AccessKey

Jalankan perintah berikut untuk membuat Secret untuk autentikasi OSS. Ganti akId dan akSecret dengan kredensial aktual Anda.

kubectl create -n default secret generic oss-secret --from-literal='akId=xxxxxx' --from-literal='akSecret=xxxxxx'

Langkah 2: Buat PV

Daftarkan Bucket OSS yang ada di kluster dengan membuat PV.

  1. Buat file bernama ossfs2-pv-ak.yaml dengan konten berikut. Definisi PV ini mencakup nodePublishSecretRef yang menunjuk ke Secret yang Anda buat.

    PV berikut memasang Bucket OSS bernama cnfs-oss-test sebagai sistem file read-only 20 GB untuk pod di kluster guna digunakan.
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-ossfs2  # Nama PV
    spec:
      capacity:
        storage: 20Gi  # Tentukan kapasitas volume (nilai ini hanya untuk mencocokkan PVC)
      accessModes:  # Mode akses
        - ReadOnlyMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ossplugin.csi.alibabacloud.com
        volumeHandle: pv-ossfs2   # Harus sama dengan nama PV (metadata.name)
        # Gunakan Secret yang dibuat sebelumnya
        nodePublishSecretRef:
          name: oss-secret  # Nama Secret yang menyimpan Informasi AccessKey
          namespace: default  # Namespace tempat Secret berada
        volumeAttributes:
          fuseType: ossfs2
          bucket: cnfs-oss-test  # Nama Bucket OSS
          path: /subpath  # Subdirektori untuk dipasang. Biarkan kosong untuk memasang direktori root.
          url: oss-cn-hangzhou-internal.aliyuncs.com  # Titik akhir wilayah tempat Bucket OSS berada
          otherOpts: "-o close_to_open=false"
    • Parameter dalam nodePublishSecretRef:

      Parameter

      Wajib

      Deskripsi

      name

      Ya

      Nama Secret yang menyimpan Informasi AccessKey.

      namespace

      Ya

      Namespace tempat Secret yang menyimpan Informasi AccessKey berada.

    • Parameter dalam volumeAttributes:

      Parameter

      Wajib

      Deskripsi

      fuseType

      Ya

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

      bucket

      Ya

      Nama Bucket OSS yang ingin Anda pasang.

      path

      Tidak

      Jalur pemasangan Bucket OSS, yang mewakili struktur direktori relatif terhadap root bucket.

      url

      Ya

      Titik akhir yang digunakan untuk memasang Bucket OSS. Anda dapat menemukan titik akhir di halaman Ikhtisar bucket di Konsol OSS.

      • Jika node dan bucket berada di wilayah yang sama, atau jika koneksi VPC telah dibuat, gunakan endpoint internal.

      • Jika node dan bucket berada di wilayah yang berbeda, gunakan endpoint publik.

      Format berikut umum digunakan untuk port akses yang berbeda:

      • Format endpoint internal: http://oss-{{regionName}}-internal.aliyuncs.com atau https://oss-{{regionName}}-internal.aliyuncs.com.

      • Format endpoint publik: http://oss-{{regionName}}.aliyuncs.com atau https://oss-{{regionName}}.aliyuncs.com.

      Penting

      Format endpoint internal vpc100-oss-{{regionName}}.aliyuncs.com sudah tidak digunakan lagi. Beralihlah ke format baru segera.

      otherOpts

      Tidak

      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. Ini memastikan metadata selalu mutakhir. Namun, dalam skenario dengan banyak pembacaan file kecil, kueri metadata sering dapat meningkatkan latensi akses secara signifikan.

      Untuk parameter opsional lainnya, lihat opsi pemasangan ossfs 2.0.

  2. Terapkan definisi PV.

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

    kubectl get pv pv-ossfs2

    Keluaran berikut menunjukkan bahwa PV adalah Available:

    NAME        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
    pv-ossfs2   20Gi       ROX            Retain           Available                          <unset>                          15s

Langkah 3: Buat PVC

Buat PVC untuk mendeklarasikan kapasitas penyimpanan persisten yang diperlukan oleh aplikasi.

  1. Buat file bernama ossfs2-pvc-static.yaml untuk mengklaim PV.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-ossfs2  # Nama PVC
      namespace: default
    spec:
      # Konfigurasi berikut harus konsisten dengan PV
      accessModes:
        - ReadOnlyMany
      resources:
        requests:
          storage: 20Gi
      volumeName: pv-ossfs2  # PV untuk diikat
  2. Buat PVC.

    kubectl create -f ossfs2-pvc-static.yaml
  3. Verifikasi bahwa PVC adalah Bound ke PV.

    kubectl get pvc pvc-ossfs2

    Keluaran yang diharapkan:

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

Langkah 4: Buat aplikasi dan pasang volume

Sekarang Anda dapat memasang PVC ke aplikasi.

  1. Buat file bernama ossfs2-test.yaml untuk mendefinisikan aplikasi Anda.

    Template YAML berikut membuat StatefulSet yang berisi satu pod. Pod tersebut meminta sumber daya penyimpanan melalui PVC bernama pvc-ossfs2 dan memasang volume ke path /data.

    Template YAML

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: ossfs2-test
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: ossfs2-test
      template:
        metadata:
          labels:
            app: ossfs2-test
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
            volumeMounts:
            - name: pvc-ossfs2
              mountPath: /data
          volumes:
            - name: pvc-ossfs2
              persistentVolumeClaim:
                claimName: pvc-ossfs2  # PVC untuk dirujuk
  2. Sebarkan aplikasi.

    kubectl create -f ossfs2-test.yaml
  3. Periksa status penyebaran pod.

    kubectl get pod -l app=ossfs2-test

    Keluaran yang diharapkan:

    NAME            READY   STATUS    RESTARTS   AGE
    ossfs2-test-0   1/1     Running   0          12m
  4. Verifikasi bahwa aplikasi dapat mengakses data di OSS.

    kubectl exec -it ossfs2-test-0 -- ls /data

    Keluaran harus menampilkan data di jalur pemasangan OSS.

Penerapan dalam produksi

Kategori

Praktik terbaik

Keamanan dan izin

  • Preferensi RRSA untuk autentikasi: Ini menyediakan kredensial sementara, berotasi otomatis melalui OpenID Connect (OIDC) dan Security Token Service (STS) serta memungkinkan isolasi izin tingkat pod yang halus, secara signifikan mengurangi risiko kebocoran kredensial.

  • Ikuti prinsip hak istimewa minimal: Saat membuat Peran atau Pengguna RAM, berikan hanya izin minimum yang diperlukan agar aplikasi dapat berfungsi.

Kinerja dan biaya

  • Optimalkan opsi pemasangan (otherOpts):

    • Caching metadata (-o close_to_open=false): Ini adalah perilaku default. Metadata file disimpan dalam cache, yang mengurangi latensi dan biaya panggilan API, menjadikannya ideal untuk beban kerja yang membaca banyak file kecil.

    • Metadata waktu nyata (-o close_to_open=true): Gunakan ini hanya jika sistem lain sering memperbarui file di OSS dan Pod Anda perlu melihat perubahan tersebut segera. Opsi ini meningkatkan latensi dan biaya API.

    Untuk optimasi performa lebih lanjut berdasarkan skenario bisnis Anda, lihat opsi pemasangan ossfs 2.0.

  • Pahami beban kerja Anda:

    • ossfs 2.0 sangat cocok untuk pola baca intensif dan tulis tambahan saja yang tidak bergantung pada API berbasis POSIX penuh, seperti pelatihan AI, inferensi, pemrosesan data besar, dan mengemudi otonom.

    • ossfs 2.0 tidak cocok untuk beban kerja tulis acak yang memerlukan modifikasi konten file secara sering, seperti database atau aplikasi pengeditan kolaboratif.

  • Bersihkan unggahan multipart yang tidak lengkap: Jika aplikasi Anda sering membatalkan unggahan file besar, konfigurasikan aturan siklus hidup pada bucket OSS Anda untuk menghapus bagian multipart yang tidak lengkap secara otomatis secara berkala. Ini akan mencegah bagian yang tidak digabungkan menumpuk dan menimbulkan biaya penyimpanan yang tidak perlu.

  • Gunakan endpoint internal: Jika kluster dan bucket OSS Anda berada di wilayah yang sama, selalu gunakan endpoint internal untuk menghindari biaya transfer data publik dan mengurangi latensi jaringan.

Manajemen O&M

  • Konfigurasikan pemeriksaan kesehatan: Konfigurasikan liveness probe di pod aplikasi Anda untuk memeriksa ketersediaan titik pemasangan. Jika pemasangan gagal, Kubernetes akan otomatis memulai ulang pod, memicu pemasangan ulang.

  • Atur pemantauan dan peringatan: Gunakan pemantauan penyimpanan kontainer untuk melacak performa dan kapasitas volume, serta konfigurasikan peringatan untuk mengidentifikasi masalah secara proaktif.

FAQ