Amazon Linux 2 から Amazon Linux 2023 にアップグレードする - Amazon EKS

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

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

Amazon Linux 2 から Amazon Linux 2023 にアップグレードする

Amazon EKS 最適化 AMI は、AL2 および AL2023 をベースとする 2 つのファミリーで使用できます。AL2023 は、クラウドアプリケーションに安全かつ安定した高パフォーマンス環境を提供するように設計された、新しい Linux ベースのオペレーティングシステムです。これは Amazon Web Services の次世代 Amazon Linux であり、サポートされているすべての Amazon EKS バージョンで利用できます (延長サポート中のバージョン 1.231.24 を含む)。AL2023 をベースとする Amazon EKS 高速 AMI は、後日利用可能になります。高速ワークロードがある場合は、AL2 高速 AMI または Bottlerocket を引き続き使用する必要があります。

AL2023 には、AL2 に比べていくつかの改善点があります。詳細については、「Amazon Linux 2023 ユーザーガイド」の「Comparing AL2 and AL2023」を参照してください。AL2 からいくつかのパッケージが追加、アップグレード、削除されています。アップグレードする前に、AL2023 でアプリケーションをテストすることを強くお勧めします。AL2023 のパッケージに関するすべての変更一覧については、「Amazon Linux 2023 リリースノート」の「Package changes in Amazon Linux 2023」を参照してください。

これらの変更に加えて、以下の点に注意してください。

  • AL2023 では、YAML 設定スキーマを使用する新しいノード初期化プロセス nodeadm が導入されています。セルフマネージド型ノードグループまたは起動テンプレートを持つ AMI を使用している場合は、新しいノードグループの作成時に追加のクラスターメタデータを明示的に指定する必要があります。最低限必要なパラメータのを以下に示します。ここで、apiServerEndpointcertificateAuthority、サービスの cidr が必要になります。

    --- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: my-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16

    AL2 では、これらのパラメータからのメタデータは Amazon EKS DescribeCluster API コールから検出されていました。AL2023 では、ノードの大規模なスケールアップ中に API コールによってスロットリングが発生するリスクがあるため、この動作が変更されました。この変更は、起動テンプレートのないマネージド型ノードグループを使用している場合や、Karpenter を使用している場合には影響しません。詳細については、「Amazon EKS API リファレンス」の certificateAuthority、サービスの cidrDescribeCluster を参照してください。

  • AL2023 では、サポートされているすべての Amazon EKS バージョンで Docker が サポートされているとは限りません。AL2 では、Amazon EKS バージョン 1.24 以降で Docker のサポートは終了し、削除されました。非推奨の詳細については、「dockershim から containerd に移行する」を参照してください。

  • AL2023 には Amazon VPC CNI バージョン 1.16.2 以降が必要です。

  • AL2023 にはデフォルトで IMDSv2 が必要です。IMDSv2 には、セキュリティ体制の改善に役立ついくつかの利点があります。セッション指向の認証方式を使用しており、セッションを開始するためにシンプルな HTTP PUT リクエストでシークレットトークンを作成する必要があります。セッショントークンの有効期間は 1 秒~ 6 時間です。IMDSv1 から IMDSv2 への移行方法の詳細については、「インスタンスメタデータサービスバージョン 2 の使用への移行」および「Get the full benefits of IMDSv2 and disable IMDSv1 across your AWS infrastructure」を参照してください。IMDSv1 を使用する場合は、インスタンスのメタデータオプションの起動プロパティで設定を手動で上書きすることで使用可能になります。

    注記

    IMDSv2 の場合、マネージド型ノードグループのデフォルトのホップカウントは 1 に設定されています。つまり、コンテナが IMDS を使用してノードの認証情報にアクセスすることはできません。ノードの認証情報へのコンテナアクセスが必要な場合は、カスタム Amazon EC2 起動テンプレートHttpPutResponseHopLimit を手動で上書きして 2 に増やすことでアクセスが可能になります。または、IMDSv2 の代わりに Amazon EKS Pod Identity を使用して、認証情報を提供することもできます。

  • AL2023 は、次世代の統合コントロールグループ階層 (cgroupv2) を備えています。cgroupv2 は、コンテナランタイムを実装するために systemd によって使用されます。AL2023 には、cgroupv1 を使用してシステムを実行できるコードが引き続き含まれていますが、この設定は推奨されません。またサポート対象でもありません。この設定は、今後の Amazon Linux のメジャーリリースで完全に削除される予定です。

  • AL2023 をサポートするには、eksctleksctl のバージョン 0.176.0 以降が必要です。

既存のマネージド型ノードグループの場合は、起動テンプレートの使用方法に応じて、インプレースアップグレードまたは Blue/Green アップグレードを実行できます。

  • マネージド型ノードグループでカスタム AMI を使用している場合は、起動テンプレートの AMI ID を入れ替えることで、インプレースアップグレードを実行できます。このアップグレード戦略を実行する前に、まずアプリケーションとユーザーデータが AL2023 に転送されていることを必ず確認してください。

  • 標準の起動テンプレートまたは AMI ID を指定しないカスタム起動テンプレートでマネージド型ノードグループを使用している場合は、Blue/Green 戦略を使用してアップグレードする必要があります。通常、Blue/Green アップグレードはより複雑で、AMI タイプとして AL2023 を指定する完全に新しいノードグループを作成する必要があります。新しいノードグループの設定は、AL2 ノードグループのすべてのカスタムデータが新しい OS と互換性があることを確認して、慎重に行う必要があります。新しいノードグループがアプリケーションでテストおよび検証されると、Pods を古いノードグループから新しいノードグループに移行できます。移行が完了したら、古いノードグループを削除できます。

Karpenter を利用していて、AL2023 を使用する場合は、EC2NodeClass amiFamily フィールドを AL2023 に変更する必要があります。デフォルトでは、Karpenter ではドリフトが有効になっています。つまり、amiFamily フィールドが変更されると、Karpenter はワーカーノードを使用可能な最新の AMI に自動的に更新します。