6.3.6. 병렬 컨테이너 이미지 가져오기 구성 정보
대역폭 문제를 제어하는 데 도움이 되도록 동시에 가져올 수 있는 워크로드 이미지 수를 구성할 수 있습니다.
기본적으로 클러스터는 이미지를 병렬로 가져오므로 여러 워크로드가 이미지를 동시에 가져올 수 있습니다. 병렬로 여러 이미지를 가져오면 워크로드가 서로 기다리지 않고 필요한 이미지를 가져올 수 있으므로 워크로드가 워크로드 시작 시간을 단축할 수 있습니다. 그러나 동시에 너무 많은 이미지를 가져오면 과도한 네트워크 대역폭을 사용하여 클러스터 전체에서 대기 시간 문제가 발생할 수 있습니다.
기본 설정을 사용하면 무제한 동시 이미지 가져오기가 가능합니다. 그러나 병렬로 가져올 수 있는 최대 이미지 수를 구성할 수 있습니다. 직렬 이미지 가져오기를 강제 적용할 수도 있습니다. 즉, 한 번에 하나의 이미지만 가져올 수 있습니다.
동시에 가져올 수 있는 이미지 수를 제어하려면 kubelet 구성을 사용하여 maxParallelImagePulls 를 설정하여 제한을 지정합니다. 이 제한을 초과하는 추가 이미지 풀은 현재 풀 중 하나가 완료될 때까지 유지됩니다.
직렬 이미지 가져오기를 강제 적용하려면 kubelet 구성을 사용하여 serializeImagePulls 필드를 true 로 설정합니다.
6.3.6.1. 병렬 컨테이너 이미지 가져오기 구성 링크 복사링크가 클립보드에 복사되었습니다!
kubelet 구성을 사용하여 워크로드에서 동시에 가져올 수 있는 이미지 수를 제어할 수 있습니다.
한 번에 하나의 이미지를 가져오도록 워크로드에서 이미지를 가져오도록 강제 적용할 수 있는 최대 이미지 수를 설정할 수 있습니다.
사전 요구 사항
- 실행 중인 OpenShift Container Platform 클러스터가 있어야 합니다.
- 관리 권한이 있는 사용자로 클러스터에 로그인했습니다.
프로세스
다음과 유사한 명령을 실행하여 병렬 가져오기를 구성하려는 머신 구성 풀에 사용자 지정 레이블을 적용합니다.
$ oc label machineconfigpool <mcp_name> parallel-pulls=setCR(사용자 정의 리소스)을 생성하여 병렬 이미지 가져오기를 구성합니다.
apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: parallel-image-pulls # ... spec: machineConfigPoolSelector: matchLabels: parallel-pulls: set kubeletConfig: serializeImagePulls: false1 maxParallelImagePulls: 32 # ...다음과 유사한 명령을 실행하여 새 머신 구성을 생성합니다.
$ oc create -f <file_name>.yaml
검증
머신 구성에서 다음 명령을 실행하여 새 구성이 추가되었는지 확인합니다.
$ oc get MachineConfig출력 예
NAME GENERATEDBYCONTROLLER IGNITIONVERSION AGE 00-master 70025364a114fc3067b2e82ce47fdb0149630e4b 3.5.0 133m 00-worker 70025364a114fc3067b2e82ce47fdb0149630e4b 3.5.0 133m # ... 99-parallel-generated-kubelet 70025364a114fc3067b2e82ce47fdb0149630e4b 3.5.0 15s1 # ... rendered-parallel-c634a80f644740974ceb40c054c79e50 70025364a114fc3067b2e82ce47fdb0149630e4b 3.5.0 10s2 다음 명령을 실행하여
병렬머신 구성 풀의 노드가 업데이트되고 있는지 확인합니다.$ oc get machineconfigpool출력 예
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE parallel rendered-parallel-3904f0e69130d125b3b5ef0e981b1ce1 False True False 1 0 0 0 65m master rendered-master-7536834c197384f3734c348c1d957c18 True False False 3 3 3 0 140m worker rendered-worker-c634a80f644740974ceb40c054c79e50 True False False 2 2 2 0 140m노드가 업데이트되면 병렬 풀 최대값이 구성되어 있는지 확인합니다.
다음과 유사한 명령을 실행하여 노드에 대한
oc debug세션을 엽니다.$ oc debug node/<node_name>다음 명령을 실행하여 디버그 쉘 내에서
/host를 root 디렉터리로 설정합니다.sh-5.1# chroot /host다음 명령을 실행하여
kubelet.conf파일을 검사합니다.sh-5.1# cat /etc/kubernetes/kubelet.conf | grep -i maxParallelImagePulls출력 예
maxParallelImagePulls: 3