Amazon EBS CSI ドライバーを Amazon EKS アドオンとして管理する - Amazon EKS

Amazon EBS CSI ドライバーを Amazon EKS アドオンとして管理する

セキュリティを向上させ作業量を減らすため、Amazon EBS CSI ドライバーを Amazon EKS アドオンとして管理できます。Amazon EKS アドオンについては、Amazon EKS アドオンを参照してください。Amazon EBS CSI アドオンを追加するには、Amazon EBS CSI アドオンの追加の手順に従います。

Amazon EBS CSI アドオンを追加した場合は、Amazon EBS CSI ドライバーを Amazon EKS アドオンとして更新する および Amazon EBS CSI アドオンの削除 セクションの手順に従って管理できます。

前提条件
  • 既存のクラスター。必要なプラットフォームのバージョンを確認するには、次のコマンドを実行します。

    aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
  • クラスター用の既存 AWS Identity and Access Management IAM OpenID Connect (OIDC) プロバイダー。既に存在しているかどうかを確認する、または作成するには「クラスター用の IAM OIDC プロバイダーの作成」を参照してください。

  • Amazon EBS CSI ドライバーの IAM ロール。この前提条件を満たしていない場合、アドオンをインストールして kubectl describe pvc を実行しようとすると、could not create volume in EC2: UnauthorizedOperation エラーとともに failed to provision volume with StorageClass が表示されます。詳細については、「サービスアカウント用の Amazon EBS CSI ドライバー IAM ロールの作成」を参照してください。

  • クラスター全体の制限された PodSecurityPolicy を使用している場合、デプロイのための十分な権限がアドオンに付与されていることを確認してください。各アドオンポッドに必要なアクセス許可については、GitHub の「関連するアドオンマニフェストの定義」を参照してください。

重要

Amazon EBS CSI ドライバーのスナップショット機能を使用するには、アドオンをインストールする前に外部の Snapshotter をインストールする必要があります。外部の Snapshotter のコンポーネントは、次の順序でインストールする必要があります。

詳細については、「GitHub」の「CSI Snapshotter」を参照してください。

注記

Amazon EBS CSI ドライバーのバージョン 1.12 以降は、Windows サーバー 2022 をサポートしています。

Amazon EBS CSI アドオンの追加

重要

Amazon EBS CSI アドオンを追加する前に、Amazon EKS による管理が開始される設定内容を自分自身で管理していないことを確認してください。Amazon EKS が管理する設定については、「 Kubernetes フィールド管理」でご確認ください。

eksctl、AWS Management Console、または AWS CLI を使用して、Amazon EBS CSI アドオンをクラスターに追加できます。

eksctl
eksctl を使用して Amazon EBS CSI アドオンを追加するには

以下のコマンドを実行します。my-cluster をクラスターの名前に、111122223333 をアカウント ID に、AmazonEKS_EBS_CSI_DriverRole を前に作成した IAM ロールの名前に置き換えます。クラスターが AWS GovCloud (米国東部) または AWS GovCloud (米国東部) の AWS リージョン にある場合は、arn:aws:arn:aws-us-gov: に置き換えます。

eksctl create addon --name aws-ebs-csi-driver --cluster my-cluster --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_EBS_CSI_DriverRole --force

--force オプションを削除して既存の設定との競合が発生する場合は、コマンドが失敗します。表示されたエラーメッセージを使用して、競合をトラブルシューティングできます。このオプションを指定する前に、自分で管理する必要のある設定が、Amazon EKS アドオンにより管理されていないことを確認してください。これは、これらの設定がこのオプションで上書きされるためです。Amazon EKS アドオンの管理について詳しくは、 Kubernetes フィールド管理を参照してください。

AWS Management Console
AWS Management Console を使用して Amazon EBS CSIアドオンを追加するには
  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. 左のナビゲーションペインで [Clusters] (クラスター) を選択します。

  3. Amazon EBS CSI アドオンを設定するクラスターの名前を選択します。

  4. [アドオン] タブを選択します。

  5. [新規追加] を選択します。

    1. [名前] に「Amazon EBS CSI ドライバー」を選択します。

    2. 使用する [Version (バージョン)] を選択します。

    3. [サービスアカウントロール] で、IAM ポリシーをアタッチした IAM ロールの名前を選択します。

    4. [Override existing configuration for this add-on on the cluster] (クラスター上のこのアドオンで既存の設定を上書きする) を選択すると、既存のアドオンでの 1 つ以上の設定が、Amazon EKS アドオンの設定で上書きされます。このオプションが有効でない状態で既存の設定との競合が発生する場合は、オペレーションが失敗します。表示されたエラーメッセージを使用して、競合をトラブルシューティングできます。このオプションを選択する前に、自分で管理する必要のある設定が、Amazon EKS アドオンにより管理されていないことを確認してください。Amazon EKS アドオンの管理について詳しくは、 Kubernetes フィールド管理を参照してください。

    5. [Add] (追加) を選択します。

AWS CLI
AWS CLI を使用して Amazon EBS CSIアドオンを追加するには

以下のコマンドを実行します。my-cluster をクラスターの名前に置き換え、111122223333 をアカウント ID に置き換え、AmazonEKS_EBS_CSI_DriverRole を前に作成したロールの名前に置き換えます。クラスターが AWS GovCloud (米国東部) または AWS GovCloud (米国東部) の AWS リージョン にある場合は、arn:aws:arn:aws-us-gov: に置き換えます。

aws eks create-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_EBS_CSI_DriverRole

Amazon EBS CSI ドライバーを Amazon EKS アドオンとして更新する

Amazon EKS では、新しいバージョンがリリースされたり、新しい Kubernetes マイナーバージョンにクラスターを更新しても、クラスターで Amazon EBS CSI が自動的に更新されることはありません。既存のクラスターで Amazon EBS CSI を更新するには、まずはお客様が更新を開始してください。その後、Amazon EKS でアドオンが更新されます。

重要

クラスターとノードを新しい Kubernetes マイナーバージョンに更新してから、Amazon EBS CSI を同じマイナーバージョンに更新します。

eksctl
eksctl を使用して Amazon EBS CSI アドオンを更新するには
  1. Amazon EBS CSI アドオンの現在のバージョンを確認します。my-cluster をクラスター名に置き換えます。

    eksctl get addon --name aws-ebs-csi-driver --cluster my-cluster

    出力例を次に示します。

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE aws-ebs-csi-driver v1.11.2-eksbuild.1 ACTIVE 0 v1.11.4-eksbuild.1
  2. アドオンを、前のステップの出力で UPDATE AVAILABLE の下に表示されたバージョンに更新します。

    eksctl update addon --name aws-ebs-csi-driver --version v1.11.4-eksbuild.1 --cluster my-cluster --force

    --force オプションを削除した状態で Amazon EKS アドオンを更新する際に、そのアドオン設定のいずれかが現状の設定と競合している場合、その更新は失敗します。この場合、競合を解決するためのエラーメッセージが表示されます。このオプションを指定する前に、自分が管理する必要がある設定を Amazon EKS アドオンが管理していないことを確認してください。これらの設定は、このオプションの指定により上書きされます。この設定のその他のオプションの詳細については、eksctl ドキュメントの「アドオン」を参照してください。Amazon EKS Kubernetes フィールド管理の詳細については、「 Kubernetes フィールド管理」を参照してください。

AWS Management Console
AWS Management Console を使用して Amazon EBS CSI アドオンを更新するには
  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. 左のナビゲーションペインで [Clusters] (クラスター) を選択します。

  3. Amazon EBS CSI アドオンを更新するクラスターの名前を選択します。

  4. [アドオン] タブを選択します。

  5. [aws-ebs-csi-driver] ボックスの右上にあるラジオボタンを選択します。

  6. Edit (編集) を選択します。

    1. [Version (バージョン)] で、使用したい Amazon EKS アドオンのバージョンを選択します。

    2. [Service account role] (サービスアカウントロール) で、Amazon EBS CSI ドライバーの IAM ポリシーをアタッチした IAM ロールの名前を選択します。

    3. [Conflict resolution method] (コンフリクト解決方法) で、いずれかのオプションを選択します。Amazon EKS Kubernetes フィールド管理の詳細については、「 Kubernetes フィールド管理」を参照してください。

    4. [Update] (更新) を選択します。

AWS CLI
AWS CLI を使用して Amazon EBS CSI アドオンを更新するには
  1. Amazon EBS CSI アドオンの現在のバージョンを確認します。my-cluster をクラスター名に置き換えます。

    aws eks describe-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver --query "addon.addonVersion" --output text

    出力例を次に示します。

    v1.11.2-eksbuild.1
  2. クラスターのバージョンで使用できる Amazon EBS CSI アドオンのバージョンを確認します。

    aws eks describe-addon-versions --addon-name aws-ebs-csi-driver --kubernetes-version 1.23 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" --output text

    出力例を次に示します。

    v1.11.4-eksbuild.1 True v1.11.2-eksbuild.1 False

    下に True と表示されているバージョンは、アドオンの作成時にデプロイされたデフォルトのバージョンです。アドオン作成時にデプロイされたバージョンは、利用可能な最新バージョンではない場合があります。先ほどの出力では、アドオンの作成時に最新バージョンがデプロイされます。

  3. アドオンを、前のステップの出力で True として返されたバージョンに更新します。出力に返されたバージョンであれば、さらに新しいバージョンに更新することもできます。

    aws eks update-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver --addon-version v1.11.4-eksbuild.1 \ --resolve-conflicts PRESERVE

    [PRESERVE] (保持) オプションは、アドオンに設定したカスタム設定を保持します。この設定のその他のオプションの詳細については、「Amazon EKS コマンドラインリファレンス」の「更新アドオン」を参照してください。Amazon EKS アドオン設定管理の詳細については、「 Kubernetes フィールド管理」を参照してください。

Amazon EBS CSI アドオンの削除

Amazon EKS アドオンを削除するには、次の 2 つのオプションがあります。

  • クラスター上のアドオンソフトウェアを保持する — このオプションでは、すべての設定の Amazon EKS 管理が削除されます。また、Amazon EKS による更新の通知機能や、更新の開始後の Amazon EKS アドオンの自動更新機能も削除されます。ただし、クラスター上のアドオンソフトウェアは保持されます。このオプションを選択すると、Amazon EKS アドオンではなく、セルフマネージド型アドオンになります。このオプションを使用すると、アドオンのダウンタイムは発生しません。この手順のコマンドには、このオプションを使用します。

  • クラスターからアドオンソフトウェアを完全に削除する — クラスターから Amazon EKS アドオンを削除するのは、アドオンに依存するリソースがクラスター上にない場合のみとすることをお勧めします。このオプションを実行するには、この手順で使用するコマンドから --preserve を削除します。

アドオンに IAM アカウントが関連付けられている場合、その IAM アカウントは削除されません。

eksctl、AWS Management Console、または AWS CLI を使用して、Amazon EBS CSI アドオンを削除できます。

eksctl
eksctl を使用して Amazon EBS CSIアドオンを削除するには

my-cluster をクラスター名に置き換えた後、次のコマンドを実行します。

eksctl delete addon --cluster my-cluster --name aws-ebs-csi-driver --preserve
AWS Management Console
AWS Management Console を使用して Amazon EBS CSI アドオンを削除するには
  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. 左のナビゲーションペインで [Clusters] (クラスター) を選択します。

  3. Amazon EBS CSI アドオンを削除するクラスターの名前を選択します。

  4. [アドオン] タブを選択します。

  5. [aws-ebs-csi-driver] ボックスの右上にあるラジオボタンを選択します。

  6. [Remove] (削除) を選択します。

  7. Amazon EKS でのアドオンの設定の管理を停止する場合は、[Preserve on cluster] (クラスターで保持する) を選択します。クラスターでアドオンソフトウェアを保持する場合は、この操作を実行します。これは、アドオンのすべての設定を自分で管理できるようにするためです。

  8. aws-ebs-csi-driver と入力します。

  9. [削除] を選択します。

AWS CLI
AWS CLI を使用して Amazon EBS CSI アドオンを削除するには

my-cluster をクラスター名に置き換えた後、次のコマンドを実行します。

aws eks delete-addon --cluster-name my-cluster --addon-name aws-ebs-csi-driver --preserve