すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:静的にプロビジョニングされた OSS ボリュームをマウントする

最終更新日:Apr 11, 2025

このトピックでは、シークレットを使用して静的にプロビジョニングされた Object Storage Service (OSS) ボリュームをマウントする方法について説明します。

使用上の注意

securityContext.fsgroup パラメーターがアプリケーションテンプレートで構成されている場合、kubelet はボリュームがマウントされた後に chmod または chown 操作を実行します。 これにより、マウント時間が長くなります。

説明

securityContext.fsgroup パラメーターが構成されている場合のマウントプロセスの高速化方法の詳細については、「OSS ボリュームのマウントに時間がかかるのはなぜですか?」をご参照ください。

  1. PV を作成します。

    Container Service for Kubernetes (ACK) コンソールまたは kubectl を使用して永続ボリューム (PV) を作成できます。

    kubectl

    PV を作成するときに、Alibaba Cloud アカウントの AccessKey ペアを格納するシークレットを参照できます。

    1. 次のコマンドを実行して、シークレットを作成します。

      次のコマンドの <your AccessKey ID><your AccessKey Secret> を、Alibaba Cloud アカウントの実際の AccessKey ID と AccessKey シークレットに置き換えます。 Alibaba Cloud アカウントの AccessKey ペアを取得するには、ACK コンソールに移動し、ポインターを user アイコンの上に移動して、[AccessKey] をクリックします。

      kubectl create secret generic osssecret --from-literal=akId='<your AccessKey ID>' --from-literal=akSecret='<your AccessKey Secret>' --type=alicloud/oss -n default

      osssecret: シークレットの名前。 カスタム名を指定できます。

      akId: AccessKey ID。

      akSecret: AccessKey シークレット。

      --type: シークレットのタイプ。 この例では、値は alicloud/oss に設定されています。 シークレットと、シークレットを使用するポッドは、同じ名前空間に属している必要があります。

    2. 次の oss-pv.yaml ファイルを使用して PV を作成します。

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-oss
      spec:
        capacity:
          storage: 5Gi
        accessModes:
          - ReadWriteMany
        storageClassName: oss
        flexVolume:
          driver: "alicloud/oss"
          secretRef:
            name: "osssecret"  # 前の手順で作成したシークレットの名前に置き換えます。
          options:
            bucket: "docker"
            url: "oss-cn-hangzhou.aliyuncs.com"
            path: "/path"  
            otherOpts: "-o max_stat_cache_size=0 -o allow_other"

    ACK コンソール

    1. ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。 左側のペインで、[ボリューム] > [永続ボリューム] を選択します。

    3. [永続ボリューム] ページで、[作成] をクリックします。 PV の作成ダイアログボックスで、パラメーターを設定します。 パラメーターを設定したら、[作成] をクリックします。

      パラメーター

      説明

      [PV タイプ]

      この例では、OSS が選択されています。

      [ボリューム名]

      作成した PV の名前。 名前はクラスター内で一意である必要があります。 この例では、pv-oss が指定されています。

      [容量]

      作成した PV の容量。

      [アクセスモード]

      デフォルト値: ReadWriteMany

      [アクセスの証明書]

      OSS バケットにアクセスするために使用されるシークレットを選択します。

      • [既存のシークレットを選択]: 名前空間シークレット を選択します。

      • [シークレットを作成]: 名前空間名前AccessKey ID、および AccessKey シークレット を設定します。

      [オプションパラメーター]

      -o *** -o *** 形式でカスタムパラメーターを入力します。

      [バケット ID]

      マウントする OSS バケットの名前。 [バケットの選択] をクリックします。 表示されるダイアログボックスで、マウントする OSS バケットを選択し、[選択] をクリックします。

      [OSS パス]

      マウントするバケットルートディレクトリからの相対パス。

      [エンドポイント]

      OSS バケットとクラスター内の Elastic Compute Service (ECS) インスタンスが異なるリージョンにデプロイされている場合は、[パブリックエンドポイント] を選択します。 OSS バケットがクラシックネットワークにデプロイされている場合は、[内部エンドポイント] を選択します。

  2. 永続ボリューム要求 (PVC) を作成します。

    次の oss-pvc.yaml ファイルを使用して PVC を作成します。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-oss
    spec:
      storageClassName: oss
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
  3. ポッドを作成します。

    次の oss-deploy.yaml ファイルを使用してポッドを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: oss-static
      labels:
        app: nginx
    spec:
      replicas: 1
      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:
              - name: pvc-oss
                mountPath: "/data"
            livenessProbe:
              exec:
                command:
                - sh
                - -c
                - cd /data
              initialDelaySeconds: 30
              periodSeconds: 30
          volumes:
          - name: pvc-oss
            persistentVolumeClaim:
              claimName: pvc-oss