コンテナで実行した jvm からはリソースがどう見えているか

特にCPUコア数がどう見えてるのか気になったので。

環境

コンポーネント バージョン
OS Windows 10 Professional 10.0.17763
仮想環境 Hyper-V
minikube v1.15.0
java OpenJDK 11

こういうノードで試した。

kubectl get node/minikube -o yaml | yq read - status.capacity
cpu: "4"
ephemeral-storage: 44529848Ki
hugepages-2Mi: "0"
memory: 8154628Ki
pods: "110"

単純に jshell で次のコードを実行しただけ。

System.out.println(Runtime.getRuntime().availableProcessors());
System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);

まとめ

limits.cpu を四捨五入した値になるみたい。

limits.cpu availableProcessors()
なし 1
500m 以下 jshell がタイムアウトする
500m 1
1000m 1
1500m 2
2000m 2
2500m 3
3000m リソース不足でコンテナが起動せず