24.2. 제거 정책 구성
제거 정책을 사용하면 사용 가능한 리소스에서 노드가 부족할 때 노드가 하나 이상의 Pod를 실패할 수 있습니다. Pod가 실패하면 노드에서 필요한 리소스를 회수할 수 있습니다.
제거 정책은 노드 구성 파일에 설정되거나 명령줄 을 통해 설정된 특정 제거 임계값 과 함께 제거 트리거 신호 의 조합입니다. 제거는 어려울 수 있습니다. 노드에서 임계값을 초과하는 Pod에 즉시 조치를 취해야 하는 경우 또는 노드가 조치를 취하기 전에 유예 기간을 허용하는 소프트 가 있을 수 있습니다.
클러스터에서 노드를 수정하려면 필요에 따라 노드 구성 맵을 업데이트합니다. node-config.yaml
파일을 수동으로 편집하지 마십시오.
잘 구성된 제거 정책을 사용하여 노드는 컴퓨팅 리소스의 전체 리소스 사용을 사전에 모니터링하고 방지할 수 있습니다.
노드가 Pod에 실패하면 노드는 Pod의 모든 컨테이너를 종료하고 PodPhase
가 Failed 로 전환됩니다.
디스크 부족을 감지할 때 노드는 nodefs 및
파일 시스템 파티션을 지원합니다.
imagefs
nodefs
또는 rootfs
는 노드가 로컬 디스크 볼륨, 데몬 로그, emptyDir 및 기타 로컬 스토리지에 사용하는 파일 시스템입니다. 예를 들어 rootfs
는 / 를 제공하는 파일 시스템입니다. rootfs
에는 기본적으로 /var/lib/origin/openshift .local.volumes인 openshift
.local.volumes 가 포함되어 있습니다.
imagefs
는 컨테이너 런타임에서 이미지 및 개별 컨테이너 쓰기 가능 계층을 저장하는 데 사용하는 파일 시스템입니다. 제거 임계값은 imagefs
에 대해 전체 85%입니다. imagefs
파일 시스템은 런타임 및 Docker의 경우 컨테이너에서 사용하는 스토리지 드라이버에 따라 다릅니다.
Docker의 경우:
devicemapper
스토리지 드라이버를 사용하는 경우imagefs
는 씬 풀입니다.Docker 데몬에서
--storage-opt dm.basesize
플래그를 설정하여 컨테이너의 읽기 및 쓰기 계층을 제한할 수 있습니다.$ sudo dockerd --storage-opt dm.basesize=50G
-
overlay2
스토리지 드라이버를 사용하는 경우imagefs
는 /var/lib/docker/overlay2 를 포함하는 파일 시스템입니다.
-
오버레이 드라이버를 사용하는 CRI-O의 경우 기본적으로
imagefs
는 /var/lib/containers/storage 입니다.
로컬 스토리지 격리(임시 스토리지)를 사용하지 않고 XFS 할당량(volumeConfig)을 사용하지 않는 경우 Pod에서 로컬 디스크 사용량을 제한할 수 없습니다.
24.2.1. 노드 구성을 사용하여 정책 생성
제거 정책을 구성하려면 적절한 노드 구성 맵을 편집하여 eviction -hard 또는
매개변수 아래에 제거 임계값을 지정합니다.
eviction-
soft
다음 샘플은 제거 임계값을 보여줍니다.
하드 제거를 위한 노드 구성 파일 샘플
kubeletArguments: eviction-hard: 1 - memory.available<100Mi 2 - nodefs.available<10% - nodefs.inodesFree<5% - imagefs.available<15% - imagefs.inodesFree<10%
inodesFree
매개변수의 백분율 값을 제공해야 합니다. 다른 매개변수에 백분율 또는 숫자 값을 제공할 수 있습니다.
소프트 제거를 위한 노드 구성 파일 샘플
kubeletArguments: eviction-soft: 1 - memory.available<100Mi 2 - nodefs.available<10% - nodefs.inodesFree<5% - imagefs.available<15% - imagefs.inodesFree<10% eviction-soft-grace-period:3 - memory.available=1m30s - nodefs.available=1m30s - nodefs.inodesFree=1m30s - imagefs.available=1m30s - imagefs.inodesFree=1m30s
변경 사항을 적용하려면 OpenShift Container Platform 서비스를 다시 시작하십시오.
# systemctl restart atomic-openshift-node