All Products
Search
Document Center

Container Service for Kubernetes:Gunakan Bucket OSS sebagai Volume

Last Updated:Mar 26, 2026

Object Storage Service (OSS) adalah layanan penyimpanan cloud yang aman, hemat biaya, dan tahan lama dari Alibaba Cloud untuk menyimpan data tidak terstruktur dalam jumlah besar seperti gambar, audio, dan video. Artikel ini menjelaskan cara memasang OSS bucket ke pod berbasis instans wadah elastis di ACK Serverless cluster menggunakan klaim volume persisten (PVC).

Prasyarat

Sebuah ACK Serverless cluster telah dibuat. Untuk informasi lebih lanjut, lihat Buat sebuah kluster.

Catatan penggunaan

  • OSS adalah layanan penyimpanan bersama. Anda dapat memasang satu OSS bucket ke beberapa pod.

  • Disarankan untuk menyimpan tidak lebih dari 1.000 file di direktori pemasangan. Jika Anda menyimpan sejumlah besar file di direktori pemasangan, ossfs akan mengonsumsi memori tinggi, yang dapat menyebabkan kesalahan habis memori (OOM) pada pod.

Prosedur

  1. Dapatkan informasi tentang OSS bucket yang ingin digunakan.

    Jika tidak ada OSS bucket yang tersedia, buat satu di konsol OSS. Untuk informasi lebih lanjut, lihat Buat sebuah ACK Serverless cluster.

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

    2. Di halaman Buckets, cari Bucket OSS yang ingin digunakan, lalu klik nama bucket tersebut.

    3. Di halaman detail bucket, klik tab Overview. Di bagian Port, salin titik akhir sesuai dengan informasi berikut:

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

      • Jika bucket dan kluster berada di wilayah yang berbeda, salin titik akhir publik.

  2. Gunakan salah satu metode berikut untuk memberikan izin akses ke OSS:

    • Metode 1: (Direkomendasikan) Gunakan peran RAM untuk memberikan izin

      Buat peran Resource Access Management (RAM) dan lampirkan kebijakan RAM ke peran RAM. Saat membuat peran RAM, atur Principal Type menjadi Cloud Service, dan atur Principal Name menjadi Elastic Compute Service / ECS. Lampirkan kebijakan AliyunOSSFullAccess ke peran RAM. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk layanan tepercaya Alibaba Cloud dan Berikan izin ke peran RAM.

    • Metode 2: Gunakan pasangan AccessKey untuk memberikan izin

      Dapatkan ID AccessKey dan rahasia AccessKey dari pengguna RAM yang digunakan. Untuk informasi lebih lanjut, lihat Dapatkan pasangan AccessKey.

  3. Buat sebuah file bernama test-ack-oss.yaml dan salin konten berikut ke file tersebut:

    Catatan

    Dalam contoh ini, VPC digunakan. Pastikan bahwa instans, repositori gambar, dan OSS bucket berada di wilayah yang sama, seperti China (Beijing).

    Jika Anda ingin memasang bucket OSS atau menarik gambar lintas wilayah, Anda harus mengonfigurasi akses melalui Internet dan mengubah alamat gambar atau URL bucket OSS ke format yang valid. Anda harus memodifikasi bidang image dan url dalam kode berikut untuk akses Internet.

    • image: Atur nilainya menjadi registry.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2.

    • url: Atur nilainya menjadi titik akhir publik.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test-ack-oss
      labels:
        alibabacloud.com/eci: "true"
    spec:
      replicas: 2
      selector:
        matchLabels:
          alibabacloud.com/eci: "true"
      template:
        metadata:
          labels:
            alibabacloud.com/eci: "true"
        spec:
          containers:
          - name: nginx
            image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
            volumeMounts:
              - name: cache-volume
                mountPath: /cache-test
          volumes:
            - name: cache-volume
              persistentVolumeClaim:
                claimName: oss-pvc
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: oss-pvc
    spec:
      storageClassName: test
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-oss
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: oss-csi-pv
      labels:
        alicloud-pvname: pv-oss
    spec:
      storageClassName: test
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ossplugin.csi.alibabacloud.com
        volumeHandle: oss-csi-pv
        volumeAttributes:
          bucket: "oss-test"
          url: "oss-cn-beijing-internal.aliyuncs.com"
          otherOpts: "-o max_stat_cache_size=0 -o allow_other"
          ramRole: "<your RAM Role Name>"

    Dalam contoh sebelumnya, peran RAM digunakan untuk memberikan izin. Jika Anda ingin menggunakan pasangan AccessKey Anda untuk otorisasi, ganti ramRole: "<your RAM Role Name>" dengan baris-baris berikut:

          akId: "<your AccessKey ID>"
          akSecret: "<your AccessKey Secret>"
    Catatan

    Jika OSS bucket dan kluster tempat Anda ingin memasang bucket milik akun Alibaba Cloud yang berbeda, Anda harus menentukan pasangan AccessKey dari akun tempat OSS bucket dimiliki.

    Tabel berikut menjelaskan parameter yang dapat dikonfigurasi di bagian volumeAttributes.

    Parameter

    Deskripsi

    bucket

    Nama OSS bucket. Hanya OSS bucket yang dapat dipasang ke pod. Subdirektori atau file di dalam OSS bucket tidak dapat dipasang ke pod.

    url

    Titik akhir OSS bucket, yang diperoleh di Langkah 1.

    • Jika bucket dan kluster berada di wilayah yang sama, gunakan titik akhir internal.

    • Jika bucket dan kluster berada di wilayah yang berbeda, gunakan titik akhir publik.

    otherOpts

    Opsi kustom yang ditentukan untuk memasang OSS bucket. Format: -o *** -o ***. Contoh: -o max_stat_cache_size=0 -o allow_other.

    ramRole

    Peran RAM yang digunakan untuk memberikan izin.

    akId

    ID AccessKey yang digunakan untuk memberikan izin.

    akSecret

    Rahasia AccessKey yang digunakan untuk memberikan izin.

  4. Jalankan perintah berikut untuk membuat pod berbasis instans wadah elastis yang memiliki OSS bucket terpasang:

    kubectl create -f test-ack-oss.yaml
  5. Jalankan perintah berikut untuk menanyakan pod:

    kubectl get pods -o wide

    Output yang diharapkan:

    NAME                              READY   STATUS    RESTARTS   AGE     IP              NODE                           NOMINATED NODE   READINESS GATES
    test-ack-oss-655db9d64d-5q7d9     1/1     Running   0          46s     172.16.XX.XXX   virtual-kubelet-cn-****-k   <none>           <none>
    test-ack-oss-655db9d64d-m5vct     1/1     Running   0          46s     172.16.XX.XXX   virtual-kubelet-cn-****-k   <none>           <none>

    Periksa direktori file di pod dan verifikasi bahwa direktori pemasangan /cache-test dibuat untuk OSS bucket. Selain itu, verifikasi bahwa file yang ditulis ke satu pod ditampilkan di pod lainnya. Ini menunjukkan bahwa kedua pod berbagi OSS bucket.查看Pod

Referensi

Untuk informasi lebih lanjut tentang volume OSS, lihat Ikhtisar volume OSS.