AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Amazon EKS クラスターとアドオンをアップグレードする方法を教えてください。
Amazon Elastic Kubernetes Service (EKS) クラスターとアドオンをアップグレードする際に、ベストプラクティスに従いたいと考えています。
簡単な説明
クラスターをアップグレードする前に、新しい Kubernetes バージョンとの互換性を確認してください。また、新しいバージョンで動作するようにストレージドライバーとアドオンを更新する必要がある場合もあります。
Amazon EKS クラスターで Kubernetes バージョンをアップグレードした後は、以前のバージョンにダウングレードすることはできません。Kubernetes バージョンをアップグレードする前に、「Understand the Kubernetes version lifecycle on EKS (EKS の Kubernetes バージョンライフサイクルを理解する)」を参照してください。セキュリティグループのルールが、クラスターの作成時に指定したサブネットに必要なクラスター通信を許可していることを確認します。
注:
- ノードの kubelet バージョンが Kubernetes バージョンより新しいものであってはなりません。
- コントロールプレーンを更新しても、ノードグループは自動的にアップグレードされません。
- ノードの kubelet バージョンは、Kubernetes バージョンより 2 つ前のマイナーバージョンであってはなりません。例えば、Kubernetes バージョンが 1.33 の場合、サポートされている kubelet バージョンは 1.33、1.32、および 1.31 です。
マイナーバージョンは、リリース後 14 か月間 Amazon EKS の標準サポートを受けます。その後、そのバージョンは 12 か月間の延長サポートに移行します。
延長サポートを利用すると、特定の Kubernetes バージョンをより長く維持できますが、クラスター時間ごとに追加料金が発生します。延長サポート期間が終了する前にクラスターをアップグレードしない場合、AWS はクラスターを現在サポートされている最も古いバージョンに自動的にアップグレードします。
延長サポートはデフォルトで有効になっています。延長サポートを無効にするには、「EKS 延長サポートを無効にすることにより、クラスターのコストが増えないようにする」を参照してください。リリース日とサポート日については、「Amazon EKS Kubernetes release calendar (Amazon EKS Kubernetes リリースカレンダー)」を参照してください。
解決策
Amazon EKS クラスターのバージョンを更新する
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
まず、クラスターコントロールプレーンとノードの現在の Kubernetes バージョンと、現在の eksctl バージョンを確認します。
次のコマンドを実行して、クラスターコントロールプレーンの Kubernetes バージョンを確認します。
kubectl version
出力例:
Client Version: v1.33.2 Kustomize Version: v5.6.0 Server Version: v1.32.5-eks-5d4a308
次のコマンドを実行して、ノードの Kubernetes バージョンを取得します。
kubectl get nodes
出力例:
NAME STATUS ROLES AGE VERSION ip-10-42-177-172.ec2.internal Ready <none> 132m v1.32.3-eks-473151a ip-10-42-177-39.ec2.internal Ready <none> 142m v1.32.3-eks-473151a
次のコマンドを実行して eksctl のバージョンを確認します。
eksctl version
注: eksctl バージョン 0.210.0 以降を使用している必要があります。アップグレードが完了するまでに数分かかります。
次に、eksctl、Amazon EKS コンソール、または AWS CLI のいずれかを使用して、クラスターを更新します。
ノードグループのバージョンを更新する
マネージドノードグループを更新するには、「クラスターのためにマネージドノードグループを更新する」を参照してください。セルフマネージドノードグループを更新するには、アプリケーションを新しいノードグループに移行する必要があります。
Amazon EKS アドオンを更新する
Amazon EKS は、コントロールプレーンのアップグレード中にアドオンを自動的にアップグレードしません。お使いのアドオンと互換性のあるバージョンを確認し、更新してください。一度にアップグレードできるマイナーバージョンは 1 つだけです。
アドオンバージョンが最新バージョンの Kubernetes と互換性があるかどうかを確認するには、次のコマンドを実行します。
eksctl utils describe-addon-versions —kubernetes-version 1.33 —name name-of-addon | grep AddonVersion
注: name-of-addon は実際のアドオンの名前に、1.33 は最新バージョンの Kubernetes に置き換えてください。
現在のバージョンが出力に表示されていることを確認します。
出力例:
"AddonVersions": [ "AddonVersion": "v1.12.1-eksbuild.2", "AddonVersion": "v1.11.4-eksbuild.14", "AddonVersion": "v1.11.4-eksbuild.10", "AddonVersion": "v1.11.4-eksbuild.2", "AddonVersion": "v1.11.3-eksbuild.3", "AddonVersion": "v1.11.3-eksbuild.2",
次の Amazon EKS アドオンを更新する必要がある場合があります。
- ポッドネットワーキング用の Amazon 仮想プライベートクラウドコンテナネットワークインターフェイス (Amazon VPC CNI) (ポッドネットワーキング用)
- CoreDNS (DNS 解決用)
- ネットワークをルーティングするための kube-proxy
- Amazon Elastic Block Store (Amazon EBS) と Amazon Elastic File System (Amazon EFS) コンテナストレージインターフェイス (CSI) ドライバー (永続ストレージ用)
詳細については、「AWS アドオン」を参照してください。
Amazon VPC CNI プラグイン
クラスターと互換性のある Amazon VPC CNI バージョンを確認します。
次に、以下のオプションのいずれかを選択してアドオンを更新します。
- セルフマネージドアドオンから Amazon EKS マネージドアドオンに移行するには、「Amazon VPC CNI プラグインを作成する (Amazon EKS アドオン)」を参照してください。
- 既存の Amazon EKS マネージドアドオンがある場合は、「Amazon VPC CNI プラグインを更新する (Amazon EKS アドオン)」を参照してください。
- セルフマネージドアドオンを更新するには、「Amazon VPC CNI を更新する (セルフマネージドアドオン)」を参照してください。
- サービスアカウントの AWS Identity and Access Management ロール (IRSA) を設定するには、「IRSA を使用するように Amazon VPC CNI プラグインを設定する」を参照してください。
kube-proxy
クラスターと互換性のある kube-proxy バージョンを確認してください。
次に、以下のオプションのいずれかを選択してアドオンを更新します。
- Amazon EKS マネージドアドオンがある場合は、「Amazon EKS アドオンを更新する」を参照してください。
- セルフマネージドアドオンがある場合は、「Kubernetes kube-proxy セルフマネージドアドオンを更新する」を参照してください。
CoreDNS
クラスターと互換性のある CoreDNS バージョンを確認してください。
次に、以下のオプションのいずれかを選択してアドオンを更新します。
- セルフマネージドアドオンから Amazon EKS マネージドアドオンに移行するには、「CoreDNS Amazon EKS アドオンを作成する」を参照してください。
- Amazon EKS マネージドアドオンがある場合は、「CoreDNS Amazon EKS アドオンを更新する」を参照してください。
- セルフマネージドアドオンがある場合は、「CoreDNS セルフマネージドアドオンを更新する」を参照してください。
Amazon EBS ドライバーと Amazon EFS CSI ドライバー
Amazon EBS CSI ドライバーまたは Amazon EFS CSI ドライバーを更新するには、「Amazon EKS アドオンを更新する」を参照してください。
AWS Load Balancer Controller を更新する
Kubernetes バージョンと AWS Load Balancer Controller の互換性については、GitHub のウェブサイトの「Supported Kubernetes versions (サポートされている Kubernetes バージョン)」を参照してください。バージョン 2.5.0 以降の AWS Load Balancer Controller には、Kubernetes バージョン 1.22 以降が必要です。詳細については、GitHub のウェブサイトで「aws-load-balancer-controller のリリース」を参照してください。AWS Load Balancer Controller をインストールするには、「コントローラーのインストール」を参照してください。
- トピック
- Containers
- 言語
- 日本語

関連するコンテンツ
質問済み 1年前