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