21.2. 컨테이너 가비지 컬렉션


컨테이너 가비지 컬렉션은 기본적으로 활성화되어 있으며 제거 임계값에 도달하는 데 자동으로 수행됩니다. 노드는 API에서 액세스할 수 있는 모든 포드의 컨테이너를 유지하려고 합니다. pod가 삭제된 경우 컨테이너도 삭제됩니다. pod가 삭제되지 않고 제거 임계 값에 도달하지 않는 한 컨테이너는 보존됩니다. 노드가 디스크 부족 상태에 있으면 컨테이너가 제거되고 oc 로그를 통해 로그에 더 이상 액세스할 수 없습니다.

컨테이너 가비지 컬렉션 정책은 세 개의 노드 설정을 기반으로 합니다.

설정설명

minimum-container-ttl-duration

컨테이너가 가비지 컬렉션에 적합한 최소 기간입니다. 기본값은 0입니다. 제한 없이 0 을 사용합니다. 이 설정의 값은 h (시간), m (분), s (초)와 같은 단위 접미사를 사용하여 지정할 수 있습니다.

maximum-dead-containers-per-container

컨테이너당 유지할 이전 인스턴스 수입니다. 기본값은 1입니다.

maximum-dead-containers

노드에서 총 종료된 컨테이너의 최대 수입니다. 기본값은 -1 이며 무제한을 의미합니다.

참고

충돌이 있는 경우 maximum-dead-containers 설정은 maximum-dead-containers-per-container 설정보다 우선합니다. 예를 들어 maximum-dead-containers-per-container 의 수를 유지하면 총 최대 컨테이너 수가 max-dead-containers보다 큰 경우 최대-dead-containers 제한을 충족하기 위해 가장 오래된 컨테이너가 제거됩니다.

노드가 종료된 컨테이너를 제거하면 해당 컨테이너 내의 모든 파일도 제거됩니다. 노드에서 생성된 컨테이너만 가비지 수집됩니다.

기본 설정을 사용하지 않으려면 적절한 노드 구성 맵kubeletArguments 섹션에 이러한 설정 값을 지정할 수 있습니다. 아직 없는 경우 섹션을 추가합니다.

참고

이러한 매개변수가 노드 구성 맵에 없는 경우 컨테이너 가비지 컬렉션은 기본값을 사용하여 수행됩니다.

컨테이너 가비지 컬렉션 설정

kubeletArguments:
  minimum-container-ttl-duration:
    - "10s"
  maximum-dead-containers-per-container:
    - "2"
  maximum-dead-containers:
    - "240"

21.2.1. 삭제를 위해 컨테이너 감지

가비지 컬렉터 루프의 각 스핀은 다음 단계를 거칩니다.

  1. 사용 가능한 컨테이너 목록을 검색합니다.
  2. 실행 중이거나 활성 상태가 minimum-container-ttl-duration 매개변수보다 길지 않은 모든 컨테이너를 필터링합니다. 활성 상태가 아닌 컨테이너는 exited, dead, exit 상태가 될 수 있습니다.
  3. Pod 및 이미지 이름 멤버십에 따라 나머지 모든 컨테이너를 동등한 클래스로 분류합니다.
  4. 식별되지 않은 모든 컨테이너(Kletlet에서 관리하지만 이름이 잘못된 형식)를 제거합니다.
  5. max -dead-containers-per-container 매개변수보다 많은 컨테이너가 포함된 각 클래스에 대해 생성 시간별로 클래스의 컨테이너를 정렬합니다.
  6. max -dead-containers-per-container 매개 변수가 충족될 때까지 가장 오래된 컨테이너 제거를 시작합니다.
  7. 목록에 max -dead-containers 매개변수보다 많은 컨테이너가 있는 경우 수집기는 각 클래스에서 컨테이너를 제거하기 때문에 각 클래스의 컨테이너 수가 클래스당 평균 컨테이너 수 또는 <all_remaining_containers>/<number_of_classes> 보다 크지 않습니다.
  8. 충분하지 않은 경우 수집기는 목록에 있는 모든 컨테이너를 정렬하고 maximum-dead-containers 표준이 충족될 때까지 가장 오래된 컨테이너 제거를 시작합니다.
중요

요구 사항에 맞게 기본 설정을 업데이트합니다.

가비지 컬렉션은 연결된 Pod가 없는 컨테이너만 제거합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.