Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Manage the lifecycle of OSS buckets

Son Güncelleme:Oct 06, 2026

CNFS, OSS paketlerinin yaşam döngüsünü yönetir ve bunları Kubernetes bildirimleri aracılığıyla PV (Kalıcı Birim) olarak sağlar.

İki yöntem kullanılabilir:

  • Yöntem 1: CNFS kullanarak yeni bir OSS paketi oluşturun ve bunu dinamik olarak sağlanan bir birim olarak bir Deployment ile StatefulSet'e bağlayın.

  • Yöntem 2: Mevcut bir OSS paketini referans alan bir CNFS Özel Kaynak Tanımı (CRD) oluşturun ve ardından bunu statik veya dinamik olarak sağlanan bir birim olarak bağlayın.

Önkoşullar

Aşağıdakilere sahip olduğunuzdan emin olun:

  • csi-plugin ve csi-provisioner sürüm 1.24.2-5b34494d-aliyun veya üzeri (yükseltme)

  • storage-operator sürüm 1.24.95-e2d0756-aliyun veya üzeri (yükseltme)

Sınırlamalar

  • Desteklenen tek geri kazanım ilkesi Retain değeridir. Bir CNFS CRD'sini silmek paketi korur.

  • Arşiv ve Soğuk Arşiv nesnelerini okumadan veya yazmadan önce geri yüklemeniz gerekir.

  • Sürüm oluşturma etkinleştirilirse saklama ilkeleri ve OSS-HDFS yapılandırılamaz. Bunları kullanmak için öncelikle enableVersioning parametresini None olarak ayarlayın.

  • Sürüm oluşturma enabled olarak ayarlandıktan sonra devre dışı bırakılamaz, yalnızca askıya alınabilir.

  • redundancyType ve enableVersioning parametreleri storage-operator v1.26.2-1de13b6-aliyun veya üzeri sürümü gerektirir.

  • redundancyType değeri ZRS ise Soğuk Arşiv ve Derin Soğuk Arşiv desteklenmez.

Yöntem 1: CNFS ile yeni bir OSS paketi oluşturma

cnfs-oss-<clusterid> adında bir OSS paketi oluşturur ve bunu dinamik olarak sağlanan bir birim olarak bir Deployment ile StatefulSet'e bağlar.

Belirtilen ada sahip bir paket zaten varsa CNFS yeni bir paket oluşturmak yerine onu ContainerNetworkFileSystem nesnesiyle ilişkilendirir.

CNFS CRD ve StorageClass oluşturma

Secret, ContainerNetworkFileSystem CRD ve StorageClass oluşturun. <clusterid> ifadesini küme kimliğinizle değiştirin.

cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: oss-secret
stringData:
  akId: "xxxx"      # AccessKey ID for mounting the OSS bucket
  akSecret: "xxxx"  # AccessKey Secret for mounting the OSS bucket
---
apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
metadata:
  name: cnfs-oss-<clusterid>   # Set the CNFS CRD name to match the bucket name
spec:
  description: "cnfs-oss"
  type: oss
  reclaimPolicy: Retain         # Only Retain is supported. Deleting the CRD keeps the bucket.
  parameters:
    bucketName: cnfs-oss-<clusterid>   # Replace <clusterid> with your cluster ID; bucket name must be unique
    encryptType: "AES256"              # AES-256 server-side encryption
    storageType: "Standard"            # Storage class
    aclType: "private"                 # Bucket owner and authorized users only
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alibabacloud-cnfs-oss
parameters:
  containerNetworkFileSystem: cnfs-oss-<clusterid>           # Reference to the CNFS CRD
  otherOpts: -o max_stat_cache_size=0 -o allow_other         # Cache settings
  path: /
  # volumeAs: subpath   # Uncomment to auto-create a subpath for each PV
  csi.storage.k8s.io/node-publish-secret-name: oss-secret
  csi.storage.k8s.io/node-publish-secret-namespace: default
provisioner: ossplugin.csi.alibabacloud.com
reclaimPolicy: Retain
EOF

CNFS CRD parametreleri:

Parametre Açıklama Gerekli Varsayılan
description CNFS dosya sisteminin açıklaması. Hayır —
type Birim türü. oss olarak ayarlayın. Evet —
reclaimPolicy Geri kazanım ilkesi. Yalnızca Retain desteklenir. Evet —
parameters.bucketName OSS paket adı. Eşleşen bir paket varsa CNFS CRD ile ilişkilendirilir; yoksa yeni bir paket oluşturulur. Evet —
parameters.storageType Depolama sınıfı. Geçerli değerler: Standard, IA (Seyrek Erişim), Archive, ColdArchive. Arşiv ve Soğuk Arşiv nesnelerini okuma/yazma işleminden önce geri yüklemeniz gerekir. Hayır Standard
parameters.redundancyType Depolama yedeklilik türü. LRS: tek alan; ZRS (alanlar arası yedekli): alanlar arası. storage-operator v1.26.2-1de13b6-aliyun veya üzeri sürümü gerektirir. ZRS, Soğuk Arşiv veya Derin Soğuk Arşivi desteklemez. Hayır ZRS
parameters.encryptType Sunucu tarafı şifreleme algoritması. Geçerli değerler: None, AES256, SM4. Hayır —
parameters.aclType ACL türü. Geçerli değerler: private (yalnızca sahibi ve yetkili kullanıcılar), public-read (genel okuma; sahibi ve yetkili kullanıcılar yazar), public-read-write (anonim kullanıcılar dahil tüm kullanıcılar okuyup yazabilir — dikkatli kullanın). Hayır private
parameters.enableVersioning Sürüm oluşturma durumu. Geçerli değerler: enabled , suspended , None . Etkinleştirildikten sonra devre dışı bırakılamaz, yalnızca askıya alınabilir. Saklama ilkesi veya OSS-HDFS yapılandırmasını engeller. storage-operator v1.26.2-1de13b6-aliyun veya üzeri sürümü gerektirir. Bkz. Yaşam döngüsü faturalandırması. Hayır Enabled

PVC ve örnek iş yükleri oluşturma

Paketin doğru şekilde bağlandığını doğrulamak için Kalıcı Birim Talebi (PVC), Deployment ve StatefulSet oluşturun.

cat << EOF | kubectl apply -f -
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-oss-pvc
spec:
  accessModes:
    - ReadOnlyMany
  storageClassName: alibabacloud-cnfs-oss
  resources:
    requests:
      storage: 100Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-oss-deployment
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - mountPath: "/data"
          name: cnfs-oss-pvc
      volumes:
      - name: cnfs-oss-pvc
        persistentVolumeClaim:
          claimName: cnfs-oss-pvc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cnfs-oss-sts
  labels:
    app: nginx
spec:
  serviceName: "nginx"
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - mountPath: "/data"
          name: www
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadOnlyMany" ]
      storageClassName: "alibabacloud-cnfs-oss"
      resources:
        requests:
          storage: 100Gi
EOF

Paketi ve iş yüklerini doğrulama

OSS paketinin ve podların hazır olduğunu onaylayın.

CNFS CRD'yi doğrulayın:

kubectl get cnfs/cnfs-oss-<clusterid> -o yaml

Beklenen çıktı:

apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
...
status:
  conditions:
  - lastProbeTime: "2022-09-18 15:02:39"
    reason: The oss bucket is complete initialization.
    status: Ready
  fsAttributes:
    accessGroupName: DEFAULT_VPC_GROUP_NAME
    aclType: private
    bucketName: cnfs-oss-****
    encryptType: AES256
    endPoint:
      extranet: oss-****.aliyuncs.com
      internal: oss-****-internal.aliyuncs.com
    regionId: ****
    storageType: Standard
  status: Available

Paket hazır olduğunda status.status alanı Available değerini gösterir. Durum alanları:

Alan Açıklama
status CNFS CRD durumu. Geçerli değerler: Pending, Creating, Initialization (dosya sistemi oluşturma), Available, Unavailable (kurtarılabilir), Fatal (kurtarılamaz), Terminating.
conditions.lastProbeTime Son sorgu zaman damgası.
conditions.reason Mevcut durumun nedeni.
conditions.status Hazırlık durumu: Ready (kullanılabilir) veya NotReady.
fsAttributes.accessGroupName Bağlama noktası için izin grubu. Şu anda yalnızca DEFAULT_VPC_GROUP_NAME (varsayılan VPC grubu) desteklenmektedir.
fsAttributes.encryptType Şifreleme algoritması: None, AES256 veya SM4.
fsAttributes.regionId ACK kümesi bölgesi.
fsAttributes.storageType Paket depolama sınıfı: Standard, IA, Archive veya ColdArchive.
fsAttributes.redundancyType Depolama yedeklilik türü: LRS (yerel olarak yedekli depolama) veya ZRS (alanlar arası yedekli depolama).
fsAttributes.aclType Paket ACL türü.
fsAttributes.endPoint Uç noktalar: extranet (genel) ve internal (dahili ağ).
fsAttributes.enableVersioning Sürüm oluşturma durumu: enabled, suspended veya None.

Podları doğrulayın:

kubectl get pod

Beklenen çıktı:

NAME                                   READY   STATUS    RESTARTS   AGE
cnfs-oss-deployment-5864fd8d98-4****   1/1     Running   0          2m21s
cnfs-oss-sts-0                         1/1     Running   0          2m21s
cnfs-oss-sts-1                         1/1     Running   0          2m16s

Tüm podlar Running durumunu gösterir; bu da Deployment ve StatefulSet'in OSS paketini başarıyla bağladığını doğrular.

Yöntem 2: Mevcut bir OSS paketi kullanma

Ada göre mevcut bir OSS paketini referans alan bir CNFS CRD'si oluşturur.

CNFS CRD oluşturma

cat <<EOF | kubectl apply -f -
apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
metadata:
  name: cnfs-oss-exist-bucket-name
spec:
  description: "cnfs-oss"
  type: oss
  reclaimPolicy: Retain
  parameters:
    bucketName: bucket-name   # Name of your existing OSS bucket
EOF

CNFS CRD'yi doğrulama

kubectl get cnfs/cnfs-oss-exist-bucket-name -o yaml

Beklenen çıktı:

apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
...
status:
  conditions:
  - lastProbeTime: "2022-09-14 17:00:21"
    reason: The oss bucket is complete initialization.
    status: Ready
  fsAttributes:
    accessGroupName: DEFAULT_VPC_GROUP_NAME
    aclType: private
    bucketName: exist-bucket-name
    encryptType: AES256
    endPoint:
      extranet: oss-****.aliyuncs.com
      internal: oss-****-internal.aliyuncs.com
    regionId: ****
    storageType: Standard
  status: Available

Paketi bir iş yüküne bağlama

Bu yöntemin CNFS CRD'sini kullanarak PVC ve örnek iş yükleri oluşturma (Yöntem 1) bölümündeki adımları izleyerek paketi statik veya dinamik bir birim olarak Deployment'a bağlayın.

Sonraki adımlar