2.6. Pod 중단 없이 Pod 리소스 수준 조정


인플레이스 Pod 크기 조정을 사용하여 Pod를 다시 생성하거나 재시작하지 않고 컨테이너에 할당된 CPU 또는 메모리 리소스 요청 및 제한을 변경할 수 있습니다.

2.6.1. 인플레이스 Pod 크기 조정 정보

인플레이스 Pod 크기 조정을 사용하면 애플리케이션 중단 없이 실행 중인 Pod 내의 컨테이너의 CPU 및 메모리 리소스를 변경할 수 있습니다. Pod CPU 및 메모리 리소스를 변경하는 표준 방법으로 인해 Pod가 다시 생성되어 중단될 수 있습니다. 인플레이스 Pod 크기 조정을 사용하면 Pod 재시작과 관련된 다운타임 또는 상태 손실에 영향을 미치지 않고 Pod 리소스를 확장하거나 축소할 수 있습니다.

인플레이스 Pod 크기 조정을 사용하여 CPU 또는 메모리 리소스를 변경하는 경우 Pod 사양에 크기 조정 정책을 구성하여 Pod를 재시작할지 여부를 제어할 수 있습니다. 다음 예제 크기 조정 정책에서는 메모리 리소스를 변경할 때 Pod를 재시작해야 하지만 CPU 리소스 변경을 다시 시작할 수 없습니다.

리소스 정책의 예

apiVersion: v1
kind: Pod
metadata:
  name: resize-demo
spec:
  securityContext:
    runAsNonRoot: true
    seccompProfile:
      type: RuntimeDefault
  containers:
  - name: pause
# ...
    resizePolicy: 
1

    - resourceName: cpu
      restartPolicy: NotRequired
    - resourceName: memory
      restartPolicy: RestartContainer
Copy to Clipboard Toggle word wrap

1
크기 조정 정책을 지정합니다.
참고

메모리에 대한 크기 조정 정책이 RestartContainer 인 경우 메모리 제한을 줄일 수 없습니다.

기존 Pod에 크기 조정 정책을 추가하거나 수정할 수는 없지만 Pod에 소유자 오브젝트가 있는 경우 Pod의 소유자 오브젝트에서 정책을 추가하거나 편집할 수 있습니다.

다음 예와 같이 인플레이스 Pod 크기 조정을 사용하려면 OpenShift CLI(oc)에서 포드를 편집할 때 --subresource resize 플래그를 사용해야 합니다.

명령 예

$ oc edit pod <pod_name>  --subresource resize
Copy to Clipboard Toggle word wrap

$ apply -f <file_name>.yaml --subresource resize
Copy to Clipboard Toggle word wrap
$ patch pod <pod_name> --subresource resize --patch \
  '{"spec":{"containers":[{"name":"pause", "resources":{"requests":{"cpu":"800m"}, "limits":{"cpu":"800m"}}}]}}'
Copy to Clipboard Toggle word wrap

크기 조정 정책과 함께 --subresource resize 플래그를 사용해야 하므로 OpenShift Container Platform 웹 콘솔에서 Pod 리소스를 편집할 수 없습니다.

크기 조정 정책이 NotRequired 이고 요청 또는 제한을 변경하면 Pod가 재시작되지 않습니다.

$ oc get pods
Copy to Clipboard Toggle word wrap

출력 예

NAME                          READY   STATUS    RESTARTS     AGE
resize-pod                    1/1     Running   0            5s
Copy to Clipboard Toggle word wrap

크기 조정 정책이 RestartContainer 이고 요청 또는 제한을 변경하면 Pod가 다시 시작됩니다.

$ oc get pods
Copy to Clipboard Toggle word wrap

출력 예

NAME                         READY   STATUS    RESTARTS    AGE
resize-pod                   1/1     Running   1 (5s ago)  5s
Copy to Clipboard Toggle word wrap

리소스를 변경한 후 Pod 상태 조건은 다음 메시지를 사용하여 크기 조정 요청 상태를 표시합니다.

  • PodResizeInProgress: kubelet이 요청된 리소스를 할당할 수 있으며 변경 사항이 적용됩니다.
  • PodResizePending: kubelet은 다음 이유 중 하나로 즉시 변경할 수 없습니다.

    • Unfeasible: 요청한 크기 조정을 현재 노드에서 실행할 수 없습니다. 예를 들어 노드에서 사용 가능한 것보다 많은 리소스를 요청하면 불충분한 조건이 발생합니다.
    • 지연됨: 요청된 크기 조정은 현재 가능하지 않지만 나중에 가능할 수 있습니다. 예를 들어 노드에서 다른 Pod가 제거되면 요청된 리소스를 사용할 수 있습니다. 노드의 조건이 변경될 때 kubelet은 크기 조정을 다시 시도합니다.
  • error: kubelet이 리소스 할당 중에 오류가 발생하고 있으며 메시지 필드에서 오류 이유를 보고합니다.

변경할 수 없는 변경에 대한 상태 예

apiVersion: v1
kind: Pod
metadata:
  name: resize-demo
# ...
status:
  conditions:
  - lastProbeTime: "2025-09-03T15:00:50Z"
    lastTransitionTime: "2025-09-03T15:00:50Z"
    message: 'Node didn''t have enough capacity: cpu, requested: 1000000, capacity:
      3500'
    reason: Infeasible
    status: "True"
    type: PodResizePending
Copy to Clipboard Toggle word wrap

다음 제한 사항을 확인합니다.

  • 재시작 불가능한 init 컨테이너 및 임시 컨테이너에서는 인플레이스 Pod 크기 조정이 지원되지 않습니다.
  • 변경 사항이 Pod QoS 클래스와 같은 다른 Pod 변경 제약 조건을 위반하는 경우 인플레이스 Pod 크기 조정이 허용되지 않습니다.
  • 정적 cpuManagerPolicy 또는 memoryManagerPolicy 매개변수로 관리하는 Pod는 인플레이스 Pod 크기 조정으로 크기를 조정할 수 없습니다.
  • 스왑 메모리를 사용하는 Pod는 인플레이스 Pod 크기 조정이 있는 메모리 요청에 대해 RestartContainer 정책을 사용해야 합니다.

2.6.2. 인플레이스 Pod 크기 조정 구성

인플레이스 Pod 크기 조정을 사용하려면 Pod 사양에 크기 조정 정책을 추가해야 합니다.

기존 Pod에서 크기 조정 정책을 추가하거나 수정할 수는 없지만 Pod에 소유자 오브젝트가 있는 경우 Pod의 소유자 오브젝트에서 정책을 추가하거나 편집할 수 있습니다.

프로세스

  1. 크기 조정 정책을 사용하여 Pod 사양을 생성하거나 기존 Pod의 owner 오브젝트에 크기 조정 정책을 추가합니다.

    1. 다음 예와 유사한 YAML 파일을 생성합니다.

      apiVersion: v1
      kind: Pod
      metadata:
        name: resize-pod
      spec:
      # ...
        containers:
        - name: pause
          resizePolicy: 
      1
      
          - resourceName: cpu
            restartPolicy: NotRequired
          - resourceName: memory
            restartPolicy: RestartContainer
      # ...
      Copy to Clipboard Toggle word wrap
      1
      크기 조정 정책을 지정합니다. CPU 및/또는 메모리 리소스의 경우 다음 값 중 하나를 지정합니다.
      • NotRequired: Pod를 재시작하지 않고 리소스 변경 사항을 적용합니다. 크기 조정 정책을 사용할 때 이는 기본값입니다.
      • restart Container: 리소스 변경 사항을 적용하고 Pod를 다시 시작합니다.
    2. 다음과 유사한 명령을 실행하여 오브젝트를 생성합니다.

      $ oc create -f <file_name>.yaml
      Copy to Clipboard Toggle word wrap

검증

  • 다음과 유사한 명령을 실행하여 CPU 또는 메모리 요청 또는 제한을 수정하여 크기 조정 정책이 적용되었는지 확인합니다. --subresource resize 플래그를 포함해야 합니다. Pod에 배포와 같은 소유자 오브젝트가 있는 경우 소유자 오브젝트를 편집해야 합니다.

    $ oc edit pod <pod_name>  --subresource resize
    Copy to Clipboard Toggle word wrap

    정책이 적용되면 Pod가 예상대로 응답합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    크기 조정 정책이 NotRequired 이면 Pod가 재시작되지 않습니다.

    출력 예

    NAME                          READY   STATUS    RESTARTS     AGE
    resize-pod                    1/1     Running   0            5s
    Copy to Clipboard Toggle word wrap

    크기 조정 정책이 다시 시작되면 Pod가 다시 시작됩니다.

    출력 예

    NAME                         READY   STATUS    RESTARTS    AGE
    resize-pod                   1/1     Running   1 (5s ago)  5s
    Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat