コンテナーのメモリ制限のトラブルシューティング

この記事では、コンテナーのメモリ制限のトラブルシューティングについて説明します。

メモリ制限のアラート

Azure Operator Nexus クラスターに対して、 OOMKill エラーから再起動する Kubernetes ポッドを検索するようにアラートを設定することをお勧めします。 これらのアラートは、サーバー上のコンポーネントが適切に動作しているかどうかを通知します。

次の表に、メモリ制限を識別するために公開されるメトリックの一覧を示します。

指標名 Description
コンテナーの再起動 kube_pod_container_status_restarts_total
コンテナーの状態が終了した理由 kube_pod_container_status_terminated_reason
コンテナー リソースの制限 kube_pod_container_resource_limits

Container Status Terminated Reason メトリックには、影響を受けるポッドのOOMKill理由が表示されます。

メモリ不足 (Out of Memory, OOM) のポッドを識別する

まず、再起動中または OOMKillを表示しているコンポーネントを特定します。

  • <bareMetalMachineName>を、control-plane コマンドを実行する正常なkubectlベア メタル マシン リソースの名前に置き換えます。
  • run-read-command機能の詳細については、「BareMetal Run-Read 実行」を参照してください。
az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl get',arguments:[pods,-n,nc-system]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"

コンポーネントが識別されると、 describe pod コマンドで状態と再起動の数を確認できます。

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl describe',arguments:[pod,<podName>,-n,nc-system]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"

同時に、 get events コマンドは履歴を提供して、ポッドの再起動の頻度を確認できます。

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl get',arguments:[events,-n,nc-system,|,grep,<podName>]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"

これらのコマンドのデータは、 OOMKillが原因でポッドが再起動しているかどうかを識別します。

パッチ メモリの制限

調整とサポートに関するすべてのメモリ制限の変更について、Microsoft サポート 要求を発行します。

Warnung

ポッドへのメモリ制限の修正プログラムの適用は永続的ではなく、ポッドが再起動した場合に上書きできます。

メモリ制限の変更を確認する

メモリ制限が変更されると、ポッドは Ready 状態に戻り、再起動を停止する必要があります。

次のコマンドを使用して動作を確認します。

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl get',arguments:[pods,-n,nc-system]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"
az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl describe',arguments:[pod,<podName>,-n,nc-system]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"

OOM の問題の影響を受けやすい既知のサービス

  • cdi-operator
  • 脆弱性オペレーター
  • cluster-metadata-operator