スキップしてコンテンツを表示

Amazon EKS クラスターとアドオンをアップグレードする方法を教えてください。

所要時間2分
0

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 以降を使用している必要があります。アップグレードが完了するまでに数分かかります。

次に、eksctlAmazon 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 アドオンを更新する必要がある場合があります。

詳細については、「AWS アドオン」を参照してください。

Amazon VPC CNI プラグイン

クラスターと互換性のある Amazon VPC CNI バージョンを確認します。

次に、以下のオプションのいずれかを選択してアドオンを更新します。

kube-proxy

クラスターと互換性のある kube-proxy バージョンを確認してください。

次に、以下のオプションのいずれかを選択してアドオンを更新します。

CoreDNS

クラスターと互換性のある 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 をインストールするには、「コントローラーのインストール」を参照してください。

AWS公式更新しました 10ヶ月前
コメントはありません