Windows AKS ノードの「kubectl top nodes」の MEMORY(bytes) 値はどういう意味ですか?

Windows AKS ノードの「kubectl top nodes」の MEMORY(bytes) 値はどういう意味ですか?

kubectl top nodesWindows ノードを含む Azure Kubernetes Services クラスターで実行すると、次の値が返されますMEMORY(bytes)

PS >kubectl top nodes
NAME                                CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
...
akswinxxxxxxxxx                     163m         8%     2407Mi          55%
...

この番号 (2407マイル)は割り当て済みによって返される値kubectl describe node(同じ単位に変換すると)2084マイル:

PS > kubectl describe node akswinxxxxxxxxx
...
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests         Limits
  --------           --------         ------
  cpu                1070m (56%)      500m (26%)
  memory             2134435Ki (48%)  2412Mi (56%)
  ephemeral-storage  0 (0%)           0 (0%)

(他の状況では、さらに大きな違いが見られました。)

また、ワーキングセットの合計と同じではありません(6398マイル) またはプライベートメモリ (3822マイルノード上で実行されているプロセス( ):

PS C:\C\6428530b2b53f975bb582acc2f12458ca138075069d33d663f3b9e2ec70edbaf> (get-process |Measure-Object WorkingSet64 -Sum).Sum / 1024 / 1024
6397.7109375
PS C:\C\6428530b2b53f975bb582acc2f12458ca138075069d33d663f3b9e2ec70edbaf> (get-process |Measure-Object PrivateMemorySize64 -Sum).Sum / 1024 / 1024
3822.328125

crictl statsこれは、 (によって報告されているように、Podメモリの合計でもありません。1531マイル):

PS >crictl stats
CONTAINER           CPU %               MEM                 DISK                INODES
2bdfd79f404af       0.00                33.39MB             71.3MB              0
32ea5bc86bacf       0.00                34.36MB             37.75MB             0
511eb449bc0ae       0.00                37.55MB             71.3MB              0
52a1bd98c3558       3.09                222MB               147.8MB             0
6428530b2b53f       0.00                73.54MB             37.75MB             0
6bd5050e8bb4c       0.00                37.68MB             37.75MB             0
78a51582874ec       0.00                241.5MB             104.9MB             0
bb1224de3c87e       0.00                34.14MB             71.3MB              0
e19566f08ca1e       0.00                38.27MB             37.75MB             0
e633436686347       0.00                329.5MB             172MB               0
f82c4306b4692       0.00                34.79MB             37.75MB             0
fa36b455d852f       0.00                235.8MB             104.9MB             0
fe7d9f0193f17       0.00                178MB               306.2MB             0

また、ノード上の「合計メモリから空き物理メモリを引いた値」とも一致しません(5101マイル):

PS >$OS =  Get-WmiObject -Class WIN32_OperatingSystem
PS> ($OS.TotalVisibleMemorySize - $OS.FreePhysicalMemory)/1024
5101.25390625

に示されているようにKubernetes ドキュメント、この値はノードのワーキングセットでは、それは何を意味し、どのように測定されるのでしょうか? これを使用して、ノードの状態や利用可能なリソースを監視するにはどうすればよいでしょうか?

(注:インターネット上ではKubernetesのメトリクスサーバーただし、これは私の AKS Windows ノードでは実行されていないようです。

2022-12-05 更新:この数字は、一般的にはノードのメモリが現在どれだけ使用されているかを示すものであることは知っています。しかし、私はそれについてもっと詳しく知りたいのです。ポッドのメモリの数字と一致しないので、システムプロセスも含まれているようですね?それでは、どのように比較すればいいのでしょうか?割り当て可能(MEMORY%パーセンテージ) は Pod で利用できるものですか? また、ノードで直接報告される数値 (上記参照) と一致しないのはなぜですか? 簡単に言うと、Windows で実際に数値がどのように計算されるかを知りたいのです。

答え1

メモリ(バイト)「 で表示される値はkubectl top nodes割り当て済み「」の値が表示されますkubectl describe <node>。「割り当て済み」の値は、ノードで実行されているポッドに設定されているメモリ要求と制限に基づいて、Kubernetes スケジューラによってノードに割り当てられたメモリの量を示します。「メモリ(バイト)一方、「」値は、kubectl top nodesコマンドの実行時にノード上で実行されているプロセスによって使用されている実際のメモリ量を示します。

メモリ(バイト)kubectl top nodesノードの状態を監視し、ワークロードを実行するために十分なメモリが確保されていることを確認するために、表示される「割り当て済み」値を超える場合、ノードのメモリが不足しており、サイズを変更するか、リソースを再割り当てする必要があることを示している可能性があります。

関連情報