5.13.3. 컨테이너 및 이미지의 가비지 컬렉션 구성
관리자는 각 machine config pool마다 kubeletConfig
오브젝트를 생성하여 OpenShift Container Platform이 가비지 컬렉션을 수행하는 방법을 구성할 수 있습니다.
OpenShift Container Platform은 각 머신 구성 풀에 대해 하나의 kubeletConfig
오브젝트만 지원합니다.
다음 중 하나의 조합을 구성할 수 있습니다.
- 소프트 컨테이너 제거
- 하드 컨테이너 제거
- 이미지 제거
사전 요구 사항
구성하려는 노드 유형의 정적
MachineConfigPool
CRD와 연관된 라벨을 가져옵니다. 다음 중 하나를 실행합니다.Machine config pool을 표시합니다.
$ oc describe machineconfigpool <name>
예를 들면 다음과 같습니다.
$ oc describe machineconfigpool worker
출력 예
Name: worker Namespace: Labels: custom-kubelet=small-pods 1
- 1
- 레이블이 추가되면
Labels
아래에 표시됩니다.
라벨이 없으면 키/값 쌍을 추가합니다.
$ oc label machineconfigpool worker custom-kubelet=small-pods
프로세스
구성 변경을 위한 사용자 정의 리소스 (CR)를 만듭니다.
중요하나의 파일 시스템이 있거나
/var/lib/kubelet
및/var/lib/containers/
가 동일한 파일 시스템에 있는 경우 값이 가장 높은 설정이 먼저 충족되므로 제거를 트리거합니다. 파일 시스템이 제거를 트리거합니다.컨테이너 가비지 컬렉션 CR의 설정 예:
apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: worker-kubeconfig 1 spec: machineConfigPoolSelector: matchLabels: custom-kubelet: small-pods 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: 0s 7 imageMinimumGCAge: 5m 8 imageGCHighThresholdPercent: 80 9 imageGCLowThresholdPercent: 75 10
- 1
- 오브젝트의 이름입니다.
- 2
- 선택기 라벨입니다.
- 3
- 제거 유형:
evictionSoft
또는evictionHard
. - 4
- 특정 제거 트리거 신호에 따른 제거 임계값입니다.
- 5
- 소프트 제거의 유예 기간입니다. 이 매개변수는
eviction-hard
에는 적용되지 않습니다. - 6
- 특정 제거 트리거 신호에 따른 제거 임계값입니다.
evictionHard
의 경우 이러한 모든 매개변수를 지정해야 합니다. 모든 매개변수를 지정하지 않으면 지정된 매개변수만 적용되고 가비지 컬렉션이 제대로 작동하지 않습니다. - 7
- 제거 부족 상태에서 전환하기 전에 대기하는 시간입니다.
- 8
- 가비지 컬렉션에 의해 이미지가 제거되기 전에 사용되지 않은 이미지의 최소 보존 기간입니다.
- 9
- 이미지 가비지 컬렉션을 트리거하는 디스크 사용량의 백분율 (정수로 표시)입니다.
- 10
- 이미지 가비지 컬렉션이 해제하려고 하는 디스크 사용량의 백분율 (정수로 표시)입니다.
오브젝트를 생성합니다.
$ oc create -f <file-name>.yaml
예를 들면 다음과 같습니다.
$ oc create -f gc-container.yaml
출력 예
kubeletconfig.machineconfiguration.openshift.io/gc-container created
가비지 컬렉션이 활성화되어 있는지 확인합니다. 사용자 지정 리소스에 지정한 Machine Config Pool은 변경 사항이 완전히 구현될 때까지
UPDATING
과 함께 'true'로 표시됩니다.$ oc get machineconfigpool
출력 예
NAME CONFIG UPDATED UPDATING master rendered-master-546383f80705bd5aeaba93 True False worker rendered-worker-b4c51bb33ccaae6fc4a6a5 False True