このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
アマゾン EKS は新しいバージョンがリリース、あるいはクラスターを新しい Kubernetes マイナーバージョンに更新しても、アドオンを自動的に更新しません。既存のクラスターのアドオンを更新するには更新を開始する必要があります。更新を開始した後、アマゾン EKS がアドオンを更新します。アドオンを更新する前に、アドオンの現行のドキュメントを確認してください。利用可能なアドオンのリストについては「AWS アドオン」を参照してください。アドオンに IAM 役割が必要な場合、役割の作成の詳細については「使用可能な AWS の アマゾン EKS アドオン」の特定のアドオンの詳細を参照してください。
前提条件
アドオンを作成する前に、次を完了します:
-
アドオンに IAM 役割が必要かどうかを確認します。詳細については「アマゾン EKS アドオン」を参照してください。
-
アマゾン EKS アドオンバージョンがクラスターと互換性があることを検証します。詳細については「アマゾン EKS アドオンバージョンのクラスターとの互換性を検証する」を参照してください。
手順
eksctl
、AWS Management Console、AWS CLI のいずれかを使用して アマゾン EKS アドオンを更新できます。
アドオンの更新 (eksctl)
-
クラスターにインストールされている現在のアドオンおよびアドオンのバージョンを確認します。
マイクラスター
の部分は自分のクラスター名に置き換えます。eksctl get addon --cluster my-cluster
出力例は次のとおりです。
NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.7-eksbuild.2 ACTIVE 0 kube-proxy v1.23.7-eksbuild.1 ACTIVE 0 v1.23.8-eksbuild.2 vpc-cni v1.10.4-eksbuild.1 ACTIVE 0 v1.12.0-eksbuild.1,v1.11.4-eksbuild.1,v1.11.3-eksbuild.1,v1.11.2-eksbuild.1,v1.11.0-eksbuild.1
クラスターにあるアドオンおよびバージョンによって、出力が異なる場合があります。前述の出力例ではクラスターの既存のアドオン 2 つは
UPDATE AVAILABLE
列に新しいバージョンがあることがわかります。 -
アドオンを更新します。
-
デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加えます。
-
マイクラスター
の部分は自分のクラスター名に置き換えます。 -
地域コード
を、クラスターのある AWS リージョンに置き換えます。 -
vpc-cni
を更新する前のステップの出力で返されたアドオンの名前に置き換えます。 -
利用可能な最新バージョンよりも前のバージョンに更新する場合、
latest
を使用する前のステップの出力で返されたバージョン番号に置き換えます。一部のアドオンには推奨バージョンがあります。詳細については更新するアドオンのドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。* アドオンが Kubernetes サービスアカウントおよび IAM 役割を使用する場合、111122223333
をアカウント ID に置き換え、role-name
を作成した既存の IAM 役割の名前に置き換えます。役割の作成手順については作成するアドオンのドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。サービスアカウント役割を指定するにはクラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。アドオンが Kubernetes サービスアカウントおよび IAM 役割を使用しない場合、
serviceAccountRoleARN: arn:aws:iam::
行を削除してください。111122223333
:role/role-name
-
保存
オプションはアドオンの既存値を保存します。アドオン設定にカスタム値を設定していて、このオプションを使用しない場合、アマゾン EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。この値をoverwrite
に変更する場合、すべての設定が アマゾン EKS のデフォルト値に変更されます。いずれかの設定にカスタム値を設定した場合、アマゾン EKS のデフォルト値で上書きされる可能性があります。この値をnone
に変更した場合、アマゾン EKS は設定の値を一切変更しませんが、更新が失敗する可能性があります。更新に失敗した場合、競合の解決に役立つエラーメッセージが返されます。cat >update-addon.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code addons: - name: vpc-cni version: latest serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name resolveConflicts: preserve EOF
-
-
変更コマンドを実行して
update-addon.yaml
ファイルを作成します。 -
クラスターに設定ファイルを適用します。
eksctl update addon -f update-addon.yaml
アドオンの更新の詳細については
eksctl
ドキュメントの「アドオンの更新」を参照してください。 -
アドオンの更新 (AWS コンソール)
-
アマゾン EKS コンソール
を開きます。 -
左のナビゲーションペインで [クラスター] を選択してください。
-
アドオンを更新するクラスターの名前を選択してください。
-
[アドオン] タブを選択してください。
-
更新するアドオンを選択してください。
-
[編集] を選択してください。
-
[
アドオンの名前
を設定] ページで、次を実行します:-
使用する [バージョン] を選択してください。アドオンには推奨バージョンがある場合があります。詳細については更新するアドオンのドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。
-
アドオンの役割を設定するにはEKS ポッド・アイデンティティー IAM 役割とサービスアカウント用の IAM 役割 (IRSA) の 2 つのオプションがあります。希望するオプションについては以下の適切なステップに従います。選択したすべてのアドオンの [ステータス] で [サブスクリプションが必要] と表示されている場合、[次へ] を選択してください。[ステータス] で [サブスクリプションが必要] と表示されていないアドオンの場合、次を実行してください。
-
[サービスアカウント用の ポッド・アイデンティティー IAM 役割] で、既存の EKS Pod Identity IAM 役割を使用するか、または [推奨役割を作成] ボタンを使用して EKS Pod Identity IAM 役割を作成できます。このフィールドには適切な信頼ポリシーを持つオプションのみが表示されます。選択する役割がない場合は一致する信頼ポリシーを持つ既存の役割が存在しないことになります。選択したアドオンのサービスアカウント用の EKS Pod Identity IAM 役割を設定するには[推奨役割を作成] を選択してください。役割作成ウィザードが別のウィンドウで開きます。ウィザードは次のように役割の情報を自動的に入力してください。EKS Pod Identity IAM 役割を作成するアドオンごとに、IAM ウィザードのステップを次のように実行してください。
-
[信頼されたエンティティを選択] ステップでは[EKS] の AWS サービスオプションと [EKS - Pod Identity] のユースケースが事前に選択されており、アドオンのために適切な信頼ポリシーが自動的に入力されます。例えば、役割は「EKS Pod Identity の利点」で詳述されているように、pods.eks.amazonaws.com の IAM プリンシパルを含む適切な信頼ポリシーを使用して作成されます。[次へ] を選択してください。
-
[許可を追加] ステップでは役割ポリシー用の適切なマネージドポリシーがアドオンのために事前に選択されています。例えば、アマゾン VPC CNI アドオンの場合、役割は アマゾン VPC CNI Kubernetes用プラグイン で詳述されているように、マネージドポリシー「アマゾンEKS_CNI_Policy」を使用して作成されます。[次へ] を選択してください。
-
[名前、確認、作成] のステップにおいて、[役割名] で、アドオンのためにデフォルトの役割名が自動的に入力されます。例えば、アマゾン VPC CNI アドオンの場合、役割は アマゾンEKSPodIdentityアマゾンVPCCNIRole という名前で作成されます。[説明] ではアドオンのためにデフォルトの適切な説明が自動的に入力されます。例えば、アマゾン VPC CNI アドオンの場合、役割は AWS リソースにアクセスすることを「アマゾン EKS クラスターで実行されているポッドに許可します」という説明で作成されます。[信頼ポリシー] で、アドオンのために事前入力された信頼ポリシーを表示します。[役割の作成] を選択してください。
注記
デフォルトの役割名を保持すると、EKS は新しいクラスターでアドオン用の役割を事前に選択したり、既存のクラスターにアドオンを追加したりできます。この名前は引き続き上書きでき、役割はクラスター全体でアドオンのために使用できますが、役割はドロップダウンから手動で選択する必要があります。
-
-
[ステータス] が [サブスクリプションが必要] でなく、IRSA を使用して役割を設定するアドオンについてはIAM ポリシーを作成して役割にアタッチするために作成するアドオンに関するドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。IAM 役割を選択するにはクラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。
-
-
[オプションの構成設定] を展開します。
-
[設定値] で、アドオン固有の設定情報を入力してください。詳細については更新するアドオンのドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。[コンフリクト解決方法] で、いずれかのオプションを選択してください。アドオン設定にカスタム値を設定している場合、[保存] オプションをお勧めします。このオプションを選択しない場合、アマゾン EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。
-
-
[Save changes] (変更の保存) をクリックしてください。
アドオンの更新 (AWS CLI)
-
ご使用のデバイスまたは AWS CloudShell で、バージョン
2.12.3
以降、または AWS コマンドラインインターフェイス (AWS CLI) のバージョン1.27.160
以降が必要です。現在のバージョンを確認するには「aws --version | cut -d / -f2 | cut -d ' ' -f1
」を参照してください。macOS のyum
、apt-get
、または Homebrew などのパッケージマネージャーはAWS CLI の最新バージョンより数バージョン遅れることがあります。最新バージョンをインストールするには「AWS コマンドラインインターフェイスユーザーガイド」の「インストール」および「aws configure を使用したクイック設定」を参照してください。AWS CloudShell にインストールされている AWS CLI バージョンも最新バージョンより数バージョン遅れることがあります。更新するには「AWS CloudShell ユーザーガイド」の「ホームディレクトリへの AWS CLI のインストール」を参照してください。 -
インストールされているアドオンのリストを参照してください。
マイクラスター
の部分は自分のクラスター名に置き換えます。aws eks list-addons --cluster-name my-cluster
出力例は次のとおりです。
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
更新するアドオンの現在のバージョンを表示します。
マイクラスター
をクラスターの名前に置き換えて、vpc-cni
を更新するアドオンの名前に置き換えます。aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text
出力例は次のとおりです。
v1.10.4-eksbuild.1
-
クラスターのバージョンで使用できるアドオンのバージョンを確認します。
1.30
をクラスターのバージョンに置き換えて、vpc-cni
を更新するアドオンの名前に置き換えます。aws eks describe-addon-versions --kubernetes-version 1.30 --addon-name vpc-cni \ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table
出力例は次のとおりです。
------------------------------------------ | DescribeAddonVersions | +-----------------+----------------------+ | Defaultversion | Version | +-----------------+----------------------+ | False | v1.12.0-eksbuild.1 | | True | v1.11.4-eksbuild.1 | | False | v1.10.4-eksbuild.1 | | False | v1.9.3-eksbuild.1 | +-----------------+----------------------+
Defaultversion
列にTrue
と表示されているバージョンはデフォルトでアドオンが作成されたバージョンです。 -
アドオンを更新してください。デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行してください。このコマンドの詳細については「アマゾン EKS コマンドラインリファレンス」の「update-addon」を参照してください。
-
マイクラスター
の部分は自分のクラスター名に置き換えます。 -
vpc-cni
を前のステップの出力で返された更新するアドオンの名前に置き換えます。 -
version-number
を更新する前のステップの出力で返されたバージョンに置き換えます。一部のアドオンには推奨バージョンがあります。詳細については更新するアドオンのドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。* アドオンが Kubernetes サービスアカウントおよび IAM 役割を使用する場合、111122223333
をアカウント ID に置き換え、role-name
を作成した既存の IAM 役割の名前に置き換えます。役割の作成手順については作成するアドオンのドキュメントを参照してください。アドオンのリストについては「AWS アドオン」を参照してください。サービスアカウント役割を指定するにはクラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。アドオンが Kubernetes サービスアカウントおよび IAM 役割を使用しない場合、
serviceAccountRoleARN: arn:aws:iam::
行を削除してください。111122223333
:role/role-name
-
--resolve-conflicts PRESERVE
オプションはアドオンの既存値を保存します。アドオン設定にカスタム値を設定していて、このオプションを使用しない場合、アマゾン EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。この値をOVERWRITE
に変更する場合、すべての設定が アマゾン EKS のデフォルト値に変更されます。いずれかの設定にカスタム値を設定した場合、アマゾン EKS のデフォルト値で上書きされる可能性があります。この値をNONE
に変更した場合、アマゾン EKS は設定の値を一切変更しませんが、更新が失敗する可能性があります。更新に失敗した場合、競合の解決に役立つエラーメッセージが返されます。 -
すべてのカスタム設定を削除する場合は
--configuration-values '{}'
オプションを使用して更新を実行してください。これにより、すべてのカスタム設定がデフォルト値に設定されます。カスタム設定を変更しない場合、--configuration-values
フラグを指定しないでください。カスタム設定を調整する場合、{}
を新しいパラメータに置き換えます。aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --configuration-values '{}' --resolve-conflicts PRESERVE
-
-
更新のステータスを確認します。
マイクラスター
をクラスターの名前に置き換えて、vpc-cni
を更新するアドオンの名前に置き換えます。aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni
出力例は次のとおりです。
{ "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "UPDATING", } }
ステータスが
ACTIVE
に変わると更新が完了します。