このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
Amazon EKS アドオンの更新
Amazon EKS は、新しいバージョンがリリース、あるいはクラスターを新しい Kubernetes マイナーバージョンに更新しても、アドオンを自動的に更新しません。既存のクラスターのアドオンを更新するには、更新を開始する必要があります。更新を開始した後、Amazon EKS がアドオンを更新します。アドオンを更新する前に、アドオンの現行のドキュメントを確認してください。利用可能なアドオンのリストについては、「使用可能な AWS の Amazon EKS アドオン」を参照してください。アドオンに IAM ロールが必要な場合、ロールの作成の詳細については、使用可能な AWS の Amazon EKS アドオン の特定のアドオンの詳細を参照してください。
前提条件
アドオンを作成する前に、次を完了します:
-
アドオンに IAM ロールが必要かどうかを確認します。詳細については、「Amazon EKS アドオン」を参照してください。
-
Amazon EKS アドオンバージョンがクラスターと互換性があることを検証します。詳細については、「Amazon EKS アドオンバージョンのクラスターとの互換性の検証」を参照してください。
手順
eksctl
、AWS Management Console、AWS CLI のいずれかを使用して Amazon EKS アドオンを更新できます。
- eksctl
-
eksctl
を使用して Amazon EKS アドオンを更新する方法-
クラスターにインストールされている現在のアドオンおよびアドオンのバージョンを確認します。
を自分のクラスター名に置き換えます。my-cluster
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
列に新しいバージョンがあることがわかります。 -
アドオンを更新します。
-
デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加えます。
-
を自分のクラスター名に置き換えます。my-cluster
-
をクラスターのある AWS リージョン に置き換えます。region-code
-
を更新する前のステップの出力で返されたアドオンの名前に置き換えます。vpc-cni
-
利用可能な最新バージョンよりも前のバージョンに更新する場合、
を使用する前のステップの出力で返されたバージョン番号に置き換えます。一部のアドオンには推奨バージョンがあります。詳細については、更新するアドオンのドキュメントを参照してください。latest
-
アドオンが Kubernetes サービスアカウントおよび IAM ロールを使用する場合、
をアカウント ID に置き換え、111122223333
を作成した既存の IAM ロールの名前に置き換えます。ロールの作成手順については、作成するアドオンのドキュメントを参照してください。サービスアカウントロールを指定するには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。role-name
アドオンが Kubernetes サービスアカウントおよび IAM ロールを使用しない場合、
serviceAccountRoleARN: arn:aws:iam::
行を削除してください。111122223333
:role/role-name
-
オプションはアドオンの既存値を保存します。アドオン設定にカスタム値を設定していて、このオプションを使用しない場合、Amazon EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。この値をpreserve
overwrite
に変更する場合、すべての設定が Amazon EKS のデフォルト値に変更されます。いずれかの設定にカスタム値を設定した場合、Amazon EKS のデフォルト値で上書きされる可能性があります。この値をnone
に変更した場合、Amazon 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 Management Console
-
AWS Management Console を使用して Amazon EKS アドオンを更新する方法
Amazon EKS コンソール (https://console.aws.amazon.com/eks/home#/clusters
) を開きます。 -
左のナビゲーションペインで [クラスター] を選択します。
-
アドオンを更新するクラスターの名前を選択します。
-
[アドオン] タブを選択します。
-
更新するアドオンを選択します。
-
[編集] を選択します。
-
[
アドオンの名前
を設定] ページで、次を実行します:-
使用する [バージョン] を選択します。アドオンには推奨バージョンがある場合があります。詳細については、更新するアドオンのドキュメントを参照してください。
-
[IAM ロールの選択] では、ノードの IAM ロール ([未設定])、またはアドオンで使用するために作成した既存のロールを使用できます。選択するロールがない場合、既存のロールがありません。選択したオプションを問わず、作成するアドオンのドキュメントを参照し、IAM ポリシーを作成してロールにアタッチしてください。IAM ロールを選択するには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。
-
[オプションの構成設定] を展開します。
-
[設定値] で、アドオン固有の設定情報を入力します。詳細については、更新するアドオンのドキュメントを参照してください。
-
[コンフリクト解決方法] で、いずれかのオプションを選択します。アドオン設定にカスタム値を設定している場合、[保存] オプションをお勧めします。このオプションを選択しない場合、Amazon EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。
-
-
[Save changes] (変更の保存) をクリックします。
- AWS CLI
-
前提条件
ご使用のデバイスまたは AWS CloudShell で、バージョン
2.12.3
以降、または AWS Command Line Interface (AWS CLI) のバージョン1.27.160
以降がインストールおよび設定されていること。現在のバージョンを確認するには、「
」を参照してください。macOS のaws --version | cut -d / -f2 | cut -d ' ' -f1
yum
、apt-get
、または Homebrew などのパッケージマネージャは、AWS CLI の最新バージョンより数バージョン遅れることがあります。最新バージョンをインストールするには、「AWS Command Line Interface ユーザーガイド」の「AWS CLI のインストール、更新、およびアンインストール」と「aws configure でのクイック設定」を参照してください。AWS CloudShell にインストールされている AWS CLI バージョンは、最新バージョンより数バージョン遅れている可能性もあります。更新するには、「AWS CloudShellユーザーガイド」の「ホームディレクトリへの AWS CLI のインストール」を参照してください。AWS CLI を使用して Amazon EKS アドオンを更新する方法
-
インストールされているアドオンのリストを参照してください。
を自分のクラスター名に置き換えます。my-cluster
aws eks list-addons --cluster-name
my-cluster
出力例は次のとおりです。
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
更新するアドオンの現在のバージョンを表示します。
をクラスターの名前に置き換えて、my-cluster
を更新するアドオンの名前に置き換えます。vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-cni
--query "addon.addonVersion" --output text出力例は次のとおりです。
v1.10.4-eksbuild.1
-
クラスターのバージョンで使用できる アドオンのバージョンを確認します。
をクラスターのバージョンに置き換えて、1.30
を更新するアドオンの名前に置き換えます。vpc-cni
aws eks describe-addon-versions --kubernetes-version
--addon-name1.30
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
と表示されているバージョンは、デフォルトでアドオンが作成されたバージョンです。 -
アドオンを更新してください。デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行します。このコマンドの詳細については、「Amazon EKS コマンドラインリファレンス」の「
update-addon
」を参照してください。-
を自分のクラスター名に置き換えます。my-cluster
-
を前のステップの出力で返された更新するアドオンの名前に置き換えます。vpc-cni
-
を更新する前のステップの出力で返されたバージョンに置き換えます。一部のアドオンには推奨バージョンがあります。詳細については、更新するアドオンのドキュメントを参照してください。version-number
-
アドオンが Kubernetes サービスアカウントおよび IAM ロールを使用する場合、
をアカウント ID に置き換え、111122223333
を作成した既存の IAM ロールの名前に置き換えます。ロールの作成手順については、作成するアドオンのドキュメントを参照してください。サービスアカウントロールを指定するには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。role-name
アドオンが Kubernetes サービスアカウントおよび IAM ロールを使用しない場合、
serviceAccountRoleARN: arn:aws:iam::
行を削除してください。111122223333
:role/role-name
-
--resolve-conflicts
保存
オプションはアドオンの既存値を保存します。アドオン設定にカスタム値を設定していて、このオプションを使用しない場合、Amazon EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。この値をOVERWRITE
に変更する場合、すべての設定が Amazon EKS のデフォルト値に変更されます。いずれかの設定にカスタム値を設定した場合、Amazon EKS のデフォルト値で上書きされる可能性があります。この値をNONE
に変更した場合、Amazon EKS は設定の値を一切変更しませんが、更新が失敗する可能性があります。更新に失敗した場合、競合の解決に役立つエラーメッセージが返されます。
-
すべてのカスタム設定を削除する場合は、
オプションを使用して更新を実行します。これにより、すべてのカスタム設定がデフォルト値に設定されます。カスタム設定を変更しない場合、--configuration-values '{}'
フラグを指定しないでください。カスタム設定を調整する場合、--configuration-values
を新しいパラメータに置き換えます。パラメータのリストを確認するには、「アドオンの作成」セクションの設定スキーマの表示ステップを参照してください。{}
aws eks update-addon --cluster-name
my-cluster
--addon-namevpc-cni
--addon-versionversion-number
\ --service-account-role-arn arn:aws:iam::111122223333
:role/role-name
--configuration-values '{}'
--resolve-conflictsPRESERVE
-
-
更新のステータスを確認します。
をクラスターの名前に置き換えて、my-cluster
を更新するアドオンの名前に置き換えます。vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-cni
出力例は次のとおりです。
{ "addon": { "addonName": "
vpc-cni
", "clusterName": "my-cluster
", "status": "UPDATING", [...]ステータスが
ACTIVE
に変わると更新が完了します。
-