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

Container Service for Kubernetes:Alibaba Cloud CSI ストレージの使用

最終更新日:Mar 25, 2026

Container Service for Kubernetes (ACK) を使用すると、Kubernetes クラスターで Alibaba Cloud のストレージサービスを利用できます。ACK はネイティブの Kubernetes ストレージと互換性があり、Container Storage Interface (CSI) プラグインを介してストレージサービスに接続します。ディスクボリューム、NAS ボリューム、OSS ボリューム、およびローカルボリュームを Pod にマウントできます。本トピックでは、登録済みクラスターにおける Alibaba Cloud CSI プラグインの使用方法について説明します。

前提条件

  • ACK One 登録済みクラスターを作成し、外部 Kubernetes クラスターをそのクラスターに接続済みです。詳細については、「ACK One 登録済みクラスターの作成」をご参照ください。

  • 登録済みクラスターは Kubernetes 1.24 以降のバージョンで実行されています。

  • 外部クラスターがデータセンターにデプロイされている場合、データセンターと Alibaba Cloud を接続するための Express Connect 回線を確立する必要があります。

考慮事項

  • 外部クラスターが Alibaba Cloud ECS インスタンス上にデプロイされている場合、インスタンスに必要なノードラベルを追加する必要があります。詳細については、「外部クラスターを ACK One 登録済みクラスターに接続した後の ECS ノードの初期化」をご参照ください。

  • 登録済みクラスターのノードプール機能を使用して、データセンター内の外部クラスターを Alibaba Cloud ECS ノードでスケールアウトする場合、システムはデフォルトでノードラベル alibabacloud.com/external=true を追加します。

ステップ 1:RAM 権限の設定

onectl を使用する方法

  1. オンプレミスマシンに onectl をインストールします。詳細については、「onectl を使用した登録済みクラスターの管理」をご参照ください。

  2. onectl は RAM ユーザーの AccessKey ペアを使用して Alibaba Cloud リソースにアクセスします。以下のコマンドを実行して、RAM ユーザーに CSI プラグインの管理権限を付与します。

    onectl ram-user grant --addon csi-plugin

    期待される出力:

    Ram policy ack-one-registered-cluster-policy-csi-plugin granted to ram user ack-one-user-ce313528c3 successfully.

コンソールを使用する方法

CSI プラグインをインストールする前に、クラウドサービスへのアクセスに使用する AccessKey ペアを作成する必要があります。このプロセスには、RAM ユーザーの作成、必要な権限の付与、およびそのユーザーに対する AccessKey ペアの作成が含まれます。

  1. RAM ユーザーの作成を行います。

  2. カスタムポリシーの作成を行います。以下のサンプルポリシーでは、ディスク、スナップショット、スナップショットポリシー、リソースラベル、インスタンス、ファイルシステム、OSS バケットの管理権限が付与されます。

    サンプルコードを表示

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:AttachDisk",
                    "ecs:DetachDisk",
                    "ecs:DescribeDisks",
                    "ecs:CreateDisk",
                    "ecs:ResizeDisk",
                    "ecs:CreateSnapshot",
                    "ecs:DeleteSnapshot",
                    "ecs:CreateAutoSnapshotPolicy",
                    "ecs:ApplyAutoSnapshotPolicy",
                    "ecs:CancelAutoSnapshotPolicy",
                    "ecs:DeleteAutoSnapshotPolicy",
                    "ecs:DescribeAutoSnapshotPolicyEX",
                    "ecs:ModifyAutoSnapshotPolicyEx",
                    "ecs:AddTags",
                    "ecs:DescribeTags",
                    "ecs:DescribeSnapshots",
                    "ecs:ListTagResources",
                    "ecs:TagResources",
                    "ecs:UntagResources",
                    "ecs:ModifyDiskSpec",
                    "ecs:CreateSnapshot",
                    "ecs:DeleteDisk",
                    "ecs:DescribeInstanceAttribute",
                    "ecs:DescribeInstances"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "nas:DescribeFileSystems",
                    "nas:DescribeMountTargets",
                    "nas:AddTags",
                    "nas:DescribeTags",
                    "nas:RemoveTags",
                    "nas:CreateFileSystem",
                    "nas:DeleteFileSystem",
                    "nas:ModifyFileSystem",
                    "nas:CreateMountTarget",
                    "nas:DeleteMountTarget",
                    "nas:ModifyMountTarget",
                    "nas:TagResources",
                    "nas:SetDirQuota",
                    "nas:EnableRecycleBin",
                    "nas:GetRecycleBinAttribute"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "oss:PutBucket",
                    "oss:GetObjectTagging",
                    "oss:ListBuckets",
                    "oss:PutBucketTags",
                    "oss:GetBucketTags",
                    "oss:PutBucketEncryption",
                    "oss:GetBucketInfo"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  3. カスタムポリシーを RAM ユーザーにアタッチします。

  4. RAM ユーザーの AccessKey の作成を行います。

    警告

    AccessKey の呼び出しを信頼されたネットワーク環境に制限するネットワークポリシーを設定することを推奨します。これにより、AccessKey のセキュリティが向上します。詳細については、「AccessKey のネットワークアクセス制限ポリシー」をご参照ください。

  5. AccessKey ペアを使用して、登録済みクラスター内に `alibaba-addon-secret` という名前のシークレットを作成します。

    CSI プラグインをインストールする際、プラグインはこの AccessKey ペアを自動的に使用して対応するクラウドサービスにアクセスします。

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'
    説明

    <your access key id> および <your access key secret> を、直前の手順で取得した AccessKey ペアに置き換えてください。

ステップ 2:CSI プラグインのインストール

onectl を使用する方法

以下のコマンドを実行して、CSI プラグインのコンポーネントをインストールします。

onectl addon install csi-plugin
onectl addon install csi-provisioner

期待される出力:

Addon csi-plugin, version **** installed.
Addon csi-provisioner, version **** installed.

コンソールを使用する方法

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

  2. クラスターリスト」ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、「アドオン管理」をクリックします。

  3. [ボリューム] タブをクリックします。[csi-plugin] カードと [csi-provisioner] カードを見つけ、各カードの [インストール] をクリックします。

  4. メッセージダイアログボックスで、バージョンを確認し、OKをクリックします。

ステップ 3:ボリュームの使用