6.8.3. 컨테이너 및 이미지의 가비지 컬렉션 구성


관리자는 각 machine config pool마다 kubeletConfig 오브젝트를 생성하여 OpenShift Container Platform이 가비지 컬렉션을 수행하는 방법을 구성할 수 있습니다.

참고

OpenShift Container Platform은 각 머신 구성 풀에 대해 하나의 kubeletConfig 오브젝트만 지원합니다.

다음 중 하나의 조합을 구성할 수 있습니다.

  • 컨테이너 소프트 제거
  • 하드 컨테이너 제거
  • 이미지 제거

컨테이너 가비지 컬렉션은 종료된 컨테이너를 제거합니다. 이미지 가비지 컬렉션은 실행 중인 Pod에서 참조하지 않는 이미지를 제거합니다.

사전 요구 사항

  1. 다음 명령을 입력하여 구성할 노드 유형의 정적 MachineConfigPool CRD와 연결된 라벨을 가져옵니다.

    $ oc edit machineconfigpool <name>

    예를 들면 다음과 같습니다.

    $ oc edit machineconfigpool worker

    출력 예

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfigPool
    metadata:
      creationTimestamp: "2022-11-16T15:34:25Z"
      generation: 4
      labels:
        pools.operator.machineconfiguration.openshift.io/worker: "" 
    1
    
      name: worker
    #...

    1
    레이블은 Labels 아래에 표시됩니다.
    작은 정보

    라벨이 없으면 다음과 같은 키/값 쌍을 추가합니다.

    $ oc label machineconfigpool worker custom-kubelet=small-pods

프로세스

  1. 구성 변경을 위한 사용자 정의 리소스 (CR)를 만듭니다.

    중요

    파일 시스템이 한 개 있거나 /var/lib/kubelet/var/lib/containers/ 가 동일한 파일 시스템에 있는 경우 가장 높은 값이 있는 설정은 먼저 충족되므로 제거가 트리거됩니다. 파일 시스템이 제거를 트리거합니다.

    컨테이너 가비지 컬렉션 CR의 설정 예:

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: worker-kubeconfig 
    1
    
    spec:
      machineConfigPoolSelector:
        matchLabels:
          pools.operator.machineconfiguration.openshift.io/worker: "" 
    2
    
      kubeletConfig:
        evictionSoft: 
    3
    
          memory.available: "500Mi" 
    4
    
          nodefs.available: "10%"
          nodefs.inodesFree: "5%"
          imagefs.available: "15%"
          imagefs.inodesFree: "10%"
        evictionSoftGracePeriod:  
    5
    
          memory.available: "1m30s"
          nodefs.available: "1m30s"
          nodefs.inodesFree: "1m30s"
          imagefs.available: "1m30s"
          imagefs.inodesFree: "1m30s"
        evictionHard: 
    6
    
          memory.available: "200Mi"
          nodefs.available: "5%"
          nodefs.inodesFree: "4%"
          imagefs.available: "10%"
          imagefs.inodesFree: "5%"
        evictionPressureTransitionPeriod: 3m 
    7
    
        imageMinimumGCAge: 5m 
    8
    
        imageGCHighThresholdPercent: 80 
    9
    
        imageGCLowThresholdPercent: 75 
    10
    
    #...

    1
    오브젝트의 이름입니다.
    2
    머신 구성 풀에서 라벨을 지정합니다.
    3
    컨테이너 가비지 수집의 경우: 제거 유형: evictionSoft 또는 evictionHard.
    4
    컨테이너 가비지 수집의 경우: 특정 제거 트리거 신호를 기반으로 하여 임계값을 제거합니다.
    5
    컨테이너 가비지 컬렉션의 경우: 소프트 제거의 기간입니다. 이 매개변수는 eviction-hard에는 적용되지 않습니다.
    6
    컨테이너 가비지 수집의 경우: 특정 제거 트리거 신호를 기반으로 하여 임계값을 제거합니다. evictionHard 의 경우 이러한 매개변수를 모두 지정해야 합니다. 모든 매개변수를 지정하지 않으면 지정된 매개변수만 적용되고 가비지 컬렉션이 제대로 작동하지 않습니다.
    7
    컨테이너 가비지 수집의 경우: 제거 부족 상태에서 전환되기 전에 대기하는 시간입니다. evictionPressureTransitionPeriod 매개변수를 0 으로 설정하면 기본값인 5분이 구성됩니다.
    8
    이미지 가비지 컬렉션의 경우: 가비지 수집에서 이미지를 제거하기 전에 사용되지 않는 이미지의 최소 사용 기간입니다.
    9
    이미지 가비지 컬렉션의 경우 이미지 가비지 수집은 디스크 사용량의 지정된 백분율로 트리거됩니다(정수로 표시됨). 이 값은 imageGCLowThresholdPercent 값보다 커야 합니다.
    10
    이미지 가비지 수집의 경우 이미지 가비지 수집은 디스크 사용량의 지정된 백분율(정수로 표시됨)에 리소스를 해제하려고 시도합니다. 이 값은 imageGCHighThresholdPercent 값보다 작아야 합니다.
  2. 다음 명령을 실행하여 CR을 생성합니다.

    $ oc create -f <file_name>.yaml

    예를 들면 다음과 같습니다.

    $ oc create -f gc-container.yaml

    출력 예

    kubeletconfig.machineconfiguration.openshift.io/gc-container created

검증

  1. 다음 명령을 입력하여 가비지 컬렉션이 활성화되었는지 확인합니다. 사용자 지정 리소스에 지정한 Machine Config Pool은 변경 사항이 완전히 구현될 때까지 UPDATING과 함께 'true'로 표시됩니다.

    $ oc get machineconfigpool

    출력 예

    NAME     CONFIG                                   UPDATED   UPDATING
    master   rendered-master-546383f80705bd5aeaba93   True      False
    worker   rendered-worker-b4c51bb33ccaae6fc4a6a5   False     True

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동