EKS Fargate はどのような単位で分離され、リソースを共有するか教えてください
困っていた内容
EKS Fargate で Pod の実行を検討しています。
Fargate はサーバーレスの認識ですが、どのような単位で分離され、どのようなリソース(CPU/メモリ)が共有されるのか教えてください。
どのような仕様なの?
Pod ごとにノードが作成され、CPU やメモリは Pod 間で共有されません。
EKS Fargate では一つの Pod に対して、一つのノードが当てられます。また、各 Pod には独自のコンピューティング境界が設定され、カーネルや CPU、メモリなどのリソースは別の Pod とは共有されません。
なお、Fargate の場合も、kubectl get nodes
コマンドでノードが表示されます。
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
fargate-ip-192-168-117-108.ap-northeast-1.compute.internal Ready <none> 11m v1.32.8-eks-e386d34
fargate-ip-192-168-134-79.ap-northeast-1.compute.internal Ready <none> 11m v1.32.8-eks-e386d34
参考資料
Fargate で実行される各 Pod には、独自のコンピューティング境界があります。基本となるカーネル、CPU リソース、メモリリソース、または Elastic Network Interface を別のPod と共有しません。
Amazon EKS Fargate はノードごとに Pod を 1 つだけ実行するため、リソースが少ない場合に Pod を削除するシナリオは発生しません。
Fargate
- サーバーレスでコンテナを実⾏するためのコンピュート基盤
- Kubernetes から⾒ると Pod とノードが 1:1 で紐づくため、kubectl get nodes を実⾏すると Pod の数だけノードが⾒える