노드 상에서 파드를 구동할 때, 파드는 그 자체적으로 많은 시스템 리소스를 사용한다.
이러한 리소스는 파드 내의 컨테이너들을 구동하기 위한 리소스 이외에 추가적으로 필요한 것이다.
쿠버네티스에서, 파드 오버헤드
는 리소스 요청 및 상한 외에도 파드의 인프라에 의해 소비되는 리소스를 계산하는 방법 중 하나이다.
쿠버네티스에서 파드의 오버헤드는 파드의 RuntimeClass와 관련된 Overhead에 따라 어드미션이 수행될 때 지정된다. 파드를 노드에 스케줄링할 때, 컨테이너 리소스 요청의 합 뿐만 아니라 파드의 오버헤드도 함께 고려된다.
💡 Admission Webhooks은 승인 요청을 수신하고 이를 처리하는 HTTP 콜백이다.
가상 머신 및 게스트 OS에 대하여 파드 당 120 MiB를 사용
하는 가상화 컨테이너 런타임의 런타임클래스의 경우 다음과 같이 정의 할 수 있다.apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: kata-fc
handler: kata-fc
overhead:
podFixed:
memory: "120Mi"
cpu: "250m"
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
runtimeClassName: kata-fc
containers:
- name: busybox-ctr
image: busybox:1.28
stdin: true
tty: true
resources:
limits:
cpu: 500m
memory: 100Mi
- name: nginx-ctr
image: nginx
resources:
limits:
cpu: 1500m
memory: 100Mi
kubectl get pod test-pod -o jsonpath='{.spec.overhead}'
kubectl get pod test-pod -o jsonpath='{.spec.containers[*].resources.limits}'