container Service for Kubernetes (ACK) のコンテナーストレージ機能は、Alibaba Cloudが提供するストレージサービスと統合されており、Kubernetesネイティブストレージサービスと互換性があります。 Alibaba Cloudストレージサービスを使用するには、ACKクラスターにContainer Storage Interface (CSI) プラグインをデプロイします。 ディスクボリューム、Apsara File Storage NAS (NAS) ボリューム、Object Storage Service (OSS) ボリューム、およびローカルボリュームは、ACKクラスターのポッドに自動的にマウントできます。 このトピックでは、登録済みクラスターでCSIプラグインを使用する方法について説明します。
前提条件
登録済みクラスタを作成し、登録済みクラスタに外部クラスタを接続します。 詳細については、「Container Service For Kubernetes (ACK) コンソールでの登録済みクラスターの作成」および「onectlを使用した登録済みクラスターの作成」をご参照ください。
登録済みクラスターのKubernetesバージョンが1.24以降です。
外部クラスターがデータセンターにデプロイされている場合、Alibaba Cloudストレージリソースをクラスター内のノードにボリュームとしてマウントする前に、データセンターがExpress Connect回路を使用してAlibaba Cloudに接続されていることを確認してください。
kubectlクライアントが登録済みクラスターに接続されています。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
考慮事項
外部クラスターがAlibaba Cloudにデプロイされ、ECS (Elastic Compute Service) インスタンスがクラスターに追加されている場合、ECSインスタンスにラベルを追加する必要があります。 ECSインスタンスにラベルを追加する方法の詳細については、「ACKで登録されている外部クラスターのECSインスタンスにラベルを追加する」をご参照ください。
ノードプール機能を使用してECSインスタンスを外部クラスターに追加すると、
alibabacloud.com/external=true
ラベルが自動的にECSインスタンスに追加されます。
ステップ1: RAMユーザーにCSIプラグインを管理する権限を付与する
onectlの使用
オンプレミスマシンにonectlをインストールします。 詳細については、「onectlを使用した登録済みクラスターの管理」をご参照ください。
onectlは、Resource Access Management (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ペアを設定する必要があります。 AccessKeyペアを設定する前に、RAMユーザーを作成し、RAMユーザーにAlibaba Cloudリソースへのアクセス権限を付与します。
RAMユーザーを作成します。 詳細については、「RAMユーザーの作成」をご参照ください。
カスタムポリシーを作成します。
カスタムポリシーの作成方法の詳細については、「カスタムポリシーの作成」をご参照ください。
次の例は、ディスク、スナップショット、スナップショットポリシー、リソースラベル、インスタンス、ファイルシステム、およびリポジトリを管理する権限を付与するために使用できるカスタム権限ポリシーです。 関連するAPI操作の詳細については、「関数別の操作のリスト」をご参照ください。
カスタムポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーへの権限付与」をご参照ください。
RAMユーザーのAccessKeyペアを作成します。 詳細については、「AccessKeyペアの取得」をご参照ください。
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.
コンソールの使用
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ストレージタブをクリックし、csi-pluginとcsi-provisionerを見つけ、インストールをクリックします。
注メッセージで、プラグインのバージョンを確認し、OKをクリックします。
ステップ3: ボリュームのマウント
登録済みクラスターに異なるタイプのボリュームをマウントする方法を次の表に示します。
ボリュームタイプ | 関連ドキュメント |
NAS ボリューム | |
OSS ボリューム | |
ディスクボリューム |