EBS CSI ドライバー
このセクションに入る前に、ストレージのメインセクションで紹介されたKubernetesのストレージオブジェクト(ボリューム、永続ボリューム(PV)、永続ボリューム要求(PVC)、動的プロビジョニング、一時ストレージ)について理解しておいてください。
emptyDirは一時的なボリュームの一例で、現在MySQLのStatefulSetで使用していますが、このチャプターでは動的ボリュームプロビジョニングを使用して永続ボリューム(PV)に更新する作業を行います。
Kubernetes Container Storage Interface(CSI)は、ステートフルなコンテナ化されたアプリケーションの実行を支援します。CSIドライバーはCSIインターフェースを提供し、Kubernetesクラスターが永続ボリュームのライフサイクルを管理できるようにし ます。Amazon EKSはAmazon EBSのCSIドライバーを提供することで、ステートフルなワークロードの実行をより簡単にします。
EKSクラスターで動的プロビジョニングを使用してAmazon EBSボリュームを利用するには、EBS CSIドライバーがインストールされていることを確認する必要があります。Amazon Elastic Block Store(Amazon EBS)Container Storage Interface(CSI)ドライバーにより、Amazon Elastic Kubernetes Service(Amazon EKS)クラスターは永続ボリューム用のAmazon EBSボリュームのライフサイクルを管理できます。
セキュリティを向上させ、作業量を減らすために、Amazon EKSアドオンとしてAmazon EBS CSIドライバーを管理できます。アドオンが必要とするIAMロールは既に作成されているため、アドオンをインストールすることができます:
ここで、アドオンによってEKSクラスターに何が作成されたかを確認してみましょう。例えば、DaemonSetはクラスター内の各ノードでポッドを実行しています:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ebs-csi-node 3 3 3 3 3 kubernetes.io/os=linux 3d21h
EKS 1.30以降、EBS CSIドライバーはAmazon EBS GP3ボリュームタイプを使用して設定されたデフォルトのStorageClassオブジェクトを使用します。次のコマンドを実行して確認してください:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
ebs-csi-default-sc (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 96s
gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 9d
これでEKSストレージとKubernetesオブジェクトについての理解が深まりました。次のページでは、カタログマイクロサービスのMySQL DBのStatefulSetを修正して、Kubernetesの動的ボリュームプロビジョニングを使用してデータベースファイルの永続ストレージとしてEBSブロックストアボリュームを利用することに焦点を当てます。