Amazon EBS CSI 移行に関するよくある質問 - Amazon EKS
CSI ドライバーとは何ですか?CSI 移行とは何ですか?バージョン 1.23 以降のクラスターで kubernetes.io/aws-ebs StorageClass ボリュームをマウントできますか?Amazon EKS 1.23 以降のクラスターで kubernetes.io/aws-ebs StorageClass ボリュームをプロビジョニングできますか?Amazon EKS から kubernetes.io/aws-ebs StorageClass プロビジョナーが削除されることはありますか?Amazon EBS CSI ドライバーをインストールするにはどうすればよいですか?Amazon EBS CSI ドライバーがクラスターにインストールされているかどうかを確認するにはどうすればよいですか?Amazon EBS CSI ドライバーをまだインストールしていない場合、Amazon EKS によってクラスターのバージョン 1.23 への更新が妨げられますか?クラスターをバージョン 1.23 に更新する前に Amazon EBS CSI ドライバーをインストールし忘れた場合はどうなりますか? クラスターを更新した後にドライバーをインストールできますか?新しく作成された Amazon EKS バージョン 1.23 以降のクラスターで適用されるデフォルトの StorageClass は何ですか?クラスターをバージョン 1.23 に更新すると、Amazon EKS は既存のクラスターに既に存在する StorageClasses に対して変更を加えますか?スナップショットを使用して永続ボリュームを kubernetes.io/aws-ebsStorageClass から ebs.csi.aws.com に移行するにはどうすればよいですか?アノテーションを使用して Amazon EBS ボリュームを変更する方法を教えてください。移行は Windows ワークロード向けにサポートされていますか?

Amazon EBS CSI 移行に関するよくある質問

重要

バージョン 1.22 またはそれ以前のクラスターで Pods を実行している場合は、サービスの中断を避けるために、クラスターをバージョン 1.23 に更新する前に Amazon EBS CSI ドライバーをインストールする必要があります。

Amazon EBS コンテナストレージインターフェイス (CSI) 移行機能は、ストレージオペレーションを処理する責任を Amazon EBS ツリー内 EBS ストレージプロビジョナーから Amazon EBS CSI ドライバーに移します。

CSI ドライバーとは何ですか?

CSI ドライバー:

  • Kubernetes プロジェクトのソースコードに存在する Kubernetes の「ツリー内」のストレージドライバーを置き換えます。

  • Amazon EBS などのストレージプロバイダーと連携します。

  • 単純化されたプラグインモデルを提供することで、AWS などのストレージプロバイダーが機能をリリースし、Kubernetes リリースサイクルに依存せずにサポートを維持することが容易になります。

詳細については、Kubernetes CSI ドキュメントの「Introduction」(はじめに) を参照してください。

CSI 移行とは何ですか?

Kubernetes CSI 移行機能は、ストレージオペレーションを処理する責任を、kubernetes.io/aws-ebs などの既存のツリー内ストレージプラグインから、対応する CSI ドライバーに移します。既存の StorageClassPersistentVolume、および PersistentVolumeClaim (PVC) オブジェクトは、対応する CSI ドライバーがインストールされている限り、引き続き機能します。この機能を有効にすると、次のようになります。

  • PVC を使用する既存のワークロードは、従来どおりに機能します。

  • Kubernetes は、すべてのストレージ管理オペレーションのコントロールを CSI ドライバーに渡します。

詳細については、Kubernetes ブログの「Kubernetes1.23: Kubernetes ツリー内から CSI ボリュームへの移行ステータスの更新」を参照してください。

ツリー内プラグインから CSI ドライバーへの移行をサポートするために、Amazon EKS バージョン 1.23 以降のクラスターでは CSIMigration および CSIMigrationAWS フラグがデフォルトで有効になっています。これらのフラグにより、クラスターはツリー内 API を同等の CSI API に変換できます。これらのフラグは、Amazon EKS によって管理される Kubernetes コントロールプレーンと、Amazon EKS 最適化 AMI で構成された kubelet 設定で設定されます。クラスターで Amazon EBS ボリュームを使用している Pods がある場合は、クラスターをバージョン 1.23 に更新する前に、Amazon EBS CSI ドライバーをインストールする必要があります。そうしないと、プロビジョニングやマウントなどのボリュームオペレーションが想定どおりに機能しない可能性があります。詳細については、「Amazon EBS CSI ドライバー」を参照してください。

注記

ツリー内 StorageClass プロビジョナーの名前は kubernetes.io/aws-ebs です。Amazon EBS CSI StorageClass プロビジョナーの名前は ebs.csi.aws.com です。

バージョン 1.23 以降のクラスターで kubernetes.io/aws-ebs StorageClass ボリュームをマウントできますか?

はい。Amazon EBS CSI ドライバーがインストールされている限りマウントできます。新しく作成されたバージョン 1.23 以降のクラスターの場合、クラスター作成プロセスの一環として Amazon EBS CSI ドライバーをインストールすることをお勧めします。また、ebs.csi.aws.com プロビジョナーに基づいて StorageClasses のみを使用することをお勧めします。

クラスターコントロールプレーンをバージョン 1.23 に更新し、ノードを 1.23 にまだ更新していない場合、CSIMigration および CSIMigrationAWS kubelet フラグは有効になっていません。この場合、ツリー内ドライバーを使用して kubernetes.io/aws-ebs ベースボリュームをマウントします。ただし、Pods による kubernetes.io/aws-ebs ベースボリュームの確実な使用をスケジュールできるようにするには、Amazon EBS CSI ドライバーをインストールする必要があります。ドライバーは、他のボリュームオペレーションを成功させるためにも必要です。

Amazon EKS 1.23 以降のクラスターで kubernetes.io/aws-ebs StorageClass ボリュームをプロビジョニングできますか?

はい。Amazon EBS CSI ドライバーがインストールされている限りプロビジョニングできます。

Amazon EKS から kubernetes.io/aws-ebs StorageClass プロビジョナーが削除されることはありますか?

kubernetes.io/aws-ebs StorageClass プロビジョナーと awsElasticBlockStore ボリュームタイプはサポートされなくなりましたが、削除する予定はありません。これらのリソースは、Kubernetes API の一部として扱われます。

Amazon EBS CSI ドライバーをインストールするにはどうすればよいですか?

Amazon EBS CSI ドライバーは Amazon EKS アドオンを使用してインストールすることをお勧めします。Amazon EKS アドオンの更新が必要な場合、ユーザーが更新を開始すると、Amazon EKS がアドオンを更新します。ドライバーを自ら管理したい場合は、オープンソースの Helm チャートを使用してインストールできます。

重要

Kubernetes ツリー内 Amazon EBS ドライバーは、Kubernetes コントロールプレーンで実行されます。Amazon EKS クラスター の IAM ロール に割り当てられた IAM 許可を使用して、Amazon EBS ボリュームをプロビジョニングします。Amazon EBS CSI ドライバーはノードで実行されます。ドライバーには、ボリュームをプロビジョニングするために IAM 許可が必要です。詳細については、「Amazon EBS CSI ドライバー IAM ロールの作成」を参照してください。

Amazon EBS CSI ドライバーがクラスターにインストールされているかどうかを確認するにはどうすればよいですか?

ドライバーがクラスターにインストールされているかどうかを確認するには、以下のコマンドを実行します。

kubectl get csidriver ebs.csi.aws.com

インストールが Amazon EKS によって管理されているかどうか確認するには、次のコマンドを実行します。

aws eks list-addons --cluster-name my-cluster

Amazon EBS CSI ドライバーをまだインストールしていない場合、Amazon EKS によってクラスターのバージョン 1.23 への更新が妨げられますか?

いいえ。

クラスターをバージョン 1.23 に更新する前に Amazon EBS CSI ドライバーをインストールし忘れた場合はどうなりますか? クラスターを更新した後にドライバーをインストールできますか?

はい。ただし、Amazon EBS CSI ドライバーを必要とするボリュームオペレーションは、クラスターの更新後、ドライバーがインストールされるまで失敗します。

新しく作成された Amazon EKS バージョン 1.23 以降のクラスターで適用されるデフォルトの StorageClass は何ですか?

デフォルトの StorageClass 動作は変更されないままとなります。新しいクラスターごとに、Amazon EKS は gp2 という名前の kubernetes.io/aws-ebs ベースの StorageClass を適用します。新しく作成されたクラスターからこの StorageClass を削除する予定はありません。クラスターのデフォルトの StorageClass とは別に、ボリュームタイプを指定せずに ebs.csi.aws.com ベースの StorageClass を作成すると、Amazon EBS CSI ドライバーはデフォルトで gp3 を使用します。

クラスターをバージョン 1.23 に更新すると、Amazon EKS は既存のクラスターに既に存在する StorageClasses に対して変更を加えますか?

いいえ。

スナップショットを使用して永続ボリュームを kubernetes.io/aws-ebsStorageClass から ebs.csi.aws.com に移行するにはどうすればよいですか?

永続ボリュームを移行するには、AWS ブログの「Migrating Amazon EKS clusters from gp2 to gp3 EBS volumes」(Amazon EKS クラスターを gp2 から gp3 EBS ボリュームに移行する) を参照してください。

アノテーションを使用して Amazon EBS ボリュームを変更する方法を教えてください。

aws-ebs-csi-driver v1.19.0-eksbuild.2 以降では、PersistentVolumeClaim (PVC) 内のアノテーションを使用して Amazon EBS ボリュームを変更できます。新しいボリューム変更機能は、「volumemodifier」と呼ばれる追加のサイドカーとして実装されています。詳細については、AWS ブログの「EBS CSI ドライバーを使用した Kubernetes での Amazon EBS ボリュームの移行と変更の簡素化」を参照してください。

移行は Windows ワークロード向けにサポートされていますか?

はい。オープンソースの Helm チャートを使用して Amazon EBS CSI ドライバーをインストールする場合は、node.enableWindowstrue に設定します。Amazon EBS CSI ドライバーを Amazon EKS アドオンとしてインストールする場合、これはデフォルトで設定されます。StorageClasses を作成するときは、fsTypentfs などの Windows ファイルシステムに設定します。その後、Windows ワークロードのボリュームオペレーションは、Linux ワークロードの場合と同じように、Amazon EBS CSI ドライバーに移行されます。