Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

OOM エラーの回避 - Amazon EKS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OOM エラーの回避

Windows には、Linux out-of-memoryのプロセスキラーはありません。Windows では、常にすべてのユーザーモードのメモリ割り当てが仮想として扱われ、ページファイルは必須です。最終的な効果は、Windows が Linux と同じようにメモリ不足状態にならないことです。プロセスは、メモリ不足 (OOM) の終了を受けるのではなく、ディスクにページングされます。メモリが過剰にプロビジョニングされ、すべての物理メモリが枯渇した場合、ページングによってパフォーマンスが低下する可能性があります。

システムと kubelet メモリの予約

kubelet、コンテナランタイムなどの kubernetes システムデーモンのリソース予約を--kubelet-reserveキャプチャし、sshd、udev などの OS システムデーモンのリソース予約を--system-reserveキャプチャする Linux とは異なります。Windows では、これらのフラグはノードで実行されている kubelet またはプロセスにメモリ制限をキャプチャして設定しません。

ただし、これらのフラグを組み合わせて NodeAllocatable を管理し、ポッドマニフェストのメモリリソース制限を使用してノードのキャパシティを減らし、ポッドごとのメモリ割り当てを制御することができます。この戦略を使用すると、メモリ割り当てをより適切に制御できるだけでなく、Windows ノードのout-of-memory (OOM) を最小限に抑えるメカニズムも利用できます。

Windows ノードでは、OS とプロセス用に少なくとも 2GB のメモリを予約するのがベストプラクティスです。--kubelet-reserve および/または --system-reserveを使用して NodeAllocatable を減らします。

Amazon EKS セルフマネージド Windows ノードのドキュメントに従って、CloudFormation テンプレートを使用して、kubelet 設定をカスタマイズした新しい Windows ノードグループを起動します。CloudFormation には、 と同じ BootstrapArguments という要素がありますKubeletExtraArgs。次のフラグと値で を使用します。

--kube-reserved memory=0.5Gi,ephemeral-storage=1Gi --system-reserved memory=1.5Gi,ephemeral-storage=1Gi --eviction-hard memory.available<200Mi,nodefs.available<10%"

eksctl がデプロイツールである場合は、次のドキュメントを参照して kubelet 設定をカスタマイズします。https://eksctl.io/usage/customizing-the-kubelet/

Windows コンテナのメモリ要件

Microsoft のドキュメントによると、NANO 用の Windows Server ベースイメージには少なくとも 30MB が必要ですが、Server Core には 45MB が必要です。これらの数値は、.NET Framework、Web Services as IIS、アプリケーションなどの Windows コンポーネントを追加するにつれて増加します。

Windows コンテナイメージに必要な最小メモリ量、つまりベースイメージとそのアプリケーションレイヤーを把握し、ポッド仕様でコンテナのリソース/リクエストとして設定することが不可欠です。また、アプリケーションの問題が発生した場合にポッドが使用可能なすべてのノードメモリを消費しないように制限を設定する必要があります。

以下の例では、Kubernetes スケジューラがノードにポッドを配置しようとすると、ポッドのリクエストを使用して、スケジューリングに十分なリソースがあるノードが決定されます。

spec: - name: iis image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 resources: limits: cpu: 1 memory: 800Mi requests: cpu: .1 memory: 128Mi

結論

このアプローチを使用すると、メモリが枯渇するリスクは最小限に抑えられますが、それを防ぐことはできません。Amazon CloudWatch Metrics を使用すると、メモリが枯渇した場合のアラートと修復を設定できます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.