Pod Overhead 구성하기

Hoju·2022년 8월 25일
0
post-custom-banner

노드 상에서 파드를 구동할 때, 파드는 그 자체적으로 많은 시스템 리소스를 사용한다.
이러한 리소스는 파드 내의 컨테이너들을 구동하기 위한 리소스 이외에 추가적으로 필요한 것이다.
쿠버네티스에서, 파드 오버헤드 는 리소스 요청 및 상한 외에도 파드의 인프라에 의해 소비되는 리소스를 계산하는 방법 중 하나이다.

쿠버네티스에서 파드의 오버헤드는 파드의 RuntimeClass와 관련된 Overhead에 따라 어드미션이 수행될 때 지정된다. 파드를 노드에 스케줄링할 때, 컨테이너 리소스 요청의 합 뿐만 아니라 파드의 오버헤드도 함께 고려된다.

💡 Admission Webhooks은 승인 요청을 수신하고 이를 처리하는 HTTP 콜백이다.


Pod Overhead 환경 설정하기

  • Overhead 필드 정의하는 RuntimeClass Create → 아래 예시는 가상 머신 및 게스트 OS에 대하여 파드 당 120 MiB를 사용하는 가상화 컨테이너 런타임의 런타임클래스의 경우 다음과 같이 정의 할 수 있다.
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: kata-fc
handler: kata-fc
overhead:
  podFixed:
    memory: "120Mi"
    cpu: "250m"
  • Pod Object Create
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
  • Pod Overhead 확인하기
kubectl get pod test-pod -o jsonpath='{.spec.overhead}'

  • 컨테이너의 리소스 요청 확인하기
kubectl get pod test-pod -o jsonpath='{.spec.containers[*].resources.limits}'

profile
Devops가 되고 싶은 청소년
post-custom-banner

0개의 댓글