クラスターインサイトを使用した Kubernetes バージョンアップグレードの準備 - Amazon EKS

このページの改善にご協力ください

本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

クラスターインサイトを使用した Kubernetes バージョンアップグレードの準備

Amazon EKS クラスターインサイトは、Amazon EKS と Kubernetes のベストプラクティスに従うのに役立つ推奨事項を提供します。すべての Amazon EKS クラスターは、Amazon EKS がキュレートしたインサイトのリストと照合して、自動的かつ定期的にチェックされます。これらのインサイトチェックは Amazon EKS によって完全に管理され、どのような結果にも対処するための推奨事項を提示します。

クラスターインサイトの推奨されている使用方法:
  • クラスターの Kubernetes バージョンを更新する前に、EKS コンソールでクラスターインサイトを確認します。

  • クラスターに問題が見つかった場合は、確認して適切な修正を行います。問題には、Amazon EKS および Kubernetes へのリンクも含まれます。

  • 問題を修正したら、クラスターインサイトが更新されるまで待機します。すべての問題が解決したら、クラスターを更新します。

現在、Amazon EKS は Kubernetes バージョンアップグレードの準備状況に関するインサイトのみを返します。

アップグレードインサイトは、Kubernetes クラスターのアップグレードに影響する可能性のある問題を特定します。これにより、管理者がアップグレードの準備に費やす労力が最小限に抑えられ、新しい Kubernetes バージョンでのアプリケーションの信頼性が高まります。クラスターは、Amazon EKS によって Kubernetes バージョンアップグレードに影響する可能性のある問題のリストと照合して自動的にスキャンされます。Amazon EKS は、各 Kubernetes バージョンリリースで行われた変更のレビューに基づいて、インサイトチェックのリストを頻繁に更新します。

Amazon EKS のアップグレードインサイトにより、新しいバージョンのテストと検証のプロセスがスピードアップします。また、クラスター管理者やアプリケーション開発者は、懸念事項を浮き彫りにし、修正に関するアドバイスを提供することで、最新の Kubernetes 機能を活用できます。実行されたインサイトチェックのリストと、Amazon EKS によって特定された関連する問題を確認するには、Amazon EKS ListInsights API オペレーションを呼び出すか、Amazon EKS コンソールを調べることができます。

クラスターのインサイトは定期的に更新されます。クラスターインサイトは、手動では更新できません。クラスターの問題を修正すると、クラスターインサイトが更新されるまでしばらく時間がかかります。修正が完了したかどうかを判断するには、変更を実施した時刻とクラスターインサイトの「最終更新時刻」とを比較します。

クラスターインサイトを表示する (コンソール)

Amazon EKS クラスターのインサイトを確認するには
  1. Amazon EKS コンソール (https://console.aws.amazon.com/eks/home#/clusters) を開きます。

  2. クラスターのリストから、インサイトを確認する Amazon EKS クラスターの名前を選択します。

  3. [アップグレードインサイト] タブを選択します。

  4. アップグレードインサイト」ページには、以下のフィールドが表示されます。

    • 名前 — Amazon EKS がクラスターに対して実行したチェック。

    • インサイトステータス — ステータスが「エラー」のインサイトは、通常、影響を受ける Kubernetes バージョンが現在のクラスターバージョンの N+1 であることを意味し、ステータスが「警告」とは、インサイトが将来の Kubernetes バージョン N+2 以上に適用されることを意味します。ステータスが「合格」のインサイトは、Amazon EKS がこのインサイトチェックに関連する問題をクラスター内で発見しなかったことを意味します。インサイトステータスが「不明」の場合は、Amazon EKS はクラスターがこのインサイトチェックの影響を受けているかどうかを判断できないことを意味します。

    • バージョン — インサイトにより問題の可能性がチェックされた Kubernetes バージョン。

    • 最終更新時間 (UTC-5:00) — このクラスターのインサイトのステータスが最後に更新された時刻。

    • 最終移行時間 (UTC-5:00) — このインサイトのステータスが最後に変更された時刻。

    • 説明 — アラートと修復のための推奨アクションを含むインサイトチェックの情報。

クラスターインサイトを表示する (AWS CLI)

Amazon EKS クラスターのインサイトを確認するには
  1. インサイトを確認したいクラスターを決定します。次のコマンドは、指定されたクラスターのインサイトをリスト表示しています。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行します。

    • region-code をAWS リージョン のコードに置き換えます。

    • my-cluster を自分のクラスター名に置き換えます。

    aws eks list-insights --region region-code --cluster-name my-cluster

    出力例は次のとおりです。

    { "insights": [ { "category": "UPGRADE_READINESS", "name": "Deprecated APIs removed in Kubernetes v1.29", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days." }, "kubernetesVersion": "1.29", "lastTransitionTime": 1698774710.0, "lastRefreshTime": 1700157422.0, "id": "123e4567-e89b-42d3-a456-579642341238", "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes v1.29. Upgrading your cluster before migrating to the updated APIs supported by v1.29 could cause application impact." } ] }
  2. インサイトの詳細を表示するには、次のコマンドを実行します。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行します。

    • region-code をAWS リージョン のコードに置き換えます。

    • 123e4567-e89b-42d3-a456-579642341238 をクラスターのインサイトの一覧から取得したインサイト ID に置き換えます。

    • my-cluster を自分のクラスター名に置き換えます。

    aws eks describe-insight --region region-code --id 123e4567-e89b-42d3-a456-579642341238 --cluster-name my-cluster

    出力例は次のとおりです。

    { "insight": { "category": "UPGRADE_READINESS", "additionalInfo": { "EKS update cluster documentation": "https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html", "Kubernetes v1.29 deprecation guide": "https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-29" }, "name": "Deprecated APIs removed in Kubernetes v1.29", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days." }, "kubernetesVersion": "1.29", "recommendation": "Update manifests and API clients to use newer Kubernetes APIs if applicable before upgrading to Kubernetes v1.29.", "lastTransitionTime": 1698774710.0, "lastRefreshTime": 1700157422.0, "categorySpecificSummary": { "deprecationDetails": [ { "usage": "/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas", "replacedWith": "/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas", "stopServingVersion": "1.29", "clientStats": [], "startServingReplacementVersion": "1.26" }, { "usage": "/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations", "replacedWith": "/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations", "stopServingVersion": "1.29", "clientStats": [], "startServingReplacementVersion": "1.26" } ] }, "id": "f6a11fe4-77f7-48c6-8326-9a13f022ecb3", "resources": [], "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes v1.29. Upgrading your cluster before migrating to the updated APIs supported by v1.29 could cause application impact." } }