4.2. CRI-O 매개 변수를 편집하기 위한 ContainerRuntimeConfig CR 작성
특정 MCP(MCP)와 연결된 노드의 OpenShift Container Platform CRI-O 런타임과 관련된 설정을 변경할 수 있습니다. ContainerRuntimeConfig
사용자 지정 리소스(CR)를 사용하여 구성 값을 설정하고 MCP와 일치하도록 레이블을 추가합니다. 그런 다음 MCO는 업데이트된 값으로 연결된 노드에서 crio.conf
및 storage.conf
구성 파일을 다시 빌드합니다.
ContainerRuntimeConfig
CR을 사용하여 구현된 변경 사항을 되돌리려면 CR을 삭제해야 합니다. 머신 구성 풀에서 레이블을 제거해도 변경 사항은 복구되지 않습니다.
ContainerRuntimeConfig
CR을 사용하여 다음 설정을 수정할 수 있습니다.
PIDs 제한:
ContainerRuntimeConfig
에서 PIDs 제한을 더 이상 사용되지 않을 것으로 예상됩니다. PIDs 제한이 필요한 경우KubeletConfig
CR에서podPidsLimit
필드를 대신 사용하는 것이 좋습니다.podPidsLimit
필드의 기본값은4096
입니다.참고CRI-O 플래그는 컨테이너의 cgroup에 적용되지만 Kubelet 플래그는 Pod의 cgroup에 설정됩니다. 이에 따라 PID 제한을 조정하십시오.
-
Log level:
logLevel
매개변수는 로그 메시지의 상세 수준인 CRI-Olog_level
매개변수를 설정합니다. 기본값은info
(log_level = info
)입니다. 기타 다른 옵션에는fatal
,panic
,error
,warn
,debug
,trace
가 포함됩니다. -
Overlay size:
overlaySize
매개변수는 컨테이너 이미지의 최대 크기인 CRI-O Overlay 스토리지 드라이버size
매개 변수를 설정합니다. -
Maximum log size:
ContainerRuntimeConfig
에서 최대 로그 크기를 설정하는 것은 더 이상 사용되지 않을 것으로 예상됩니다. 최대 로그 크기가 필요한 경우KubeletConfig
CR에서containerLogMaxSize
필드를 대신 사용하는 것이 좋습니다. -
container runtime:
defaultRuntime
매개변수는 컨테이너 런타임을runc
또는crun
으로 설정합니다. 기본값은runc
입니다.
각 머신 구성 풀에 대해 해당 풀에 필요한 모든 구성 변경 사항이 포함된 하나의 ContainerRuntimeConfig
CR이 있어야 합니다. 모든 풀에 동일한 콘텐츠를 적용하는 경우 모든 풀에 대해 하나의 ContainerRuntimeConfig
CR만 있으면 됩니다.
기존 ContainerRuntimeConfig
CR을 편집하여 새 CR을 생성하는 대신 기존 설정을 편집하거나 새 설정을 추가할 수도 있습니다. 새 ContainerRuntimeConfig
CR을 생성하여 다른 머신 구성 풀을 수정하거나 임시로 변경하려는 경우에만 변경 사항을 되돌릴 수 있도록 하는 것이 좋습니다.
필요에 따라 여러 ContainerRuntimeConfig
CR을 생성할 수 있습니다 (클러스터당 10 개 제한). 첫 번째 ContainerRuntimeConfig
CR의 경우 MCO는 containerruntime
으로 추가된 머신 구성을 생성합니다. 이후 각 CR을 통해 컨트롤러는 숫자 접미사가 포함된 새 containerruntime
머신 구성을 생성합니다. 예를 들어, -2
접미사가 있는 containerruntime
머신 구성이 있는 경우 다음 containerruntime
머신 구성에 -3
이 추가됩니다.
머신 구성을 삭제하려면 제한을 초과하지 않도록 해당 구성을 역순으로 삭제해야 합니다. 예를 들어 containerruntime-2
머신 구성을 삭제하기 전에 containerruntime-3
머신 구성을 삭제해야 합니다.
containerruntime-9
접미사가 있는 머신 구성이 있는 경우, 다음 머신 구성에 ContainerRuntimeConfig
CR이 추가되고, containerruntime
머신 구성이 10 개 미만이어도 제한을 초과하여 실패합니다.
여러 ContainerRuntimeConfig
CR 표시 예
$ oc get ctrcfg
출력 예
NAME AGE ctr-overlay 15m ctr-level 5m45s
여러 containerruntime
머신 구성의 예
$ oc get mc | grep container
출력 예
... 01-master-container-runtime b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.2.0 57m ... 01-worker-container-runtime b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.2.0 57m ... 99-worker-generated-containerruntime b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.2.0 26m 99-worker-generated-containerruntime-1 b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.2.0 17m 99-worker-generated-containerruntime-2 b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.2.0 7m26s ...
다음 예제에서는 log_level
필드를 debug
로 설정하고 오버레이 크기를 8GB로 설정합니다.
ContainerRuntimeConfig
CR 예
apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig metadata: name: overlay-size spec: machineConfigPoolSelector: matchLabels: pools.operator.machineconfiguration.openshift.io/worker: '' 1 containerRuntimeConfig: logLevel: debug 2 overlaySize: 8G 3 defaultRuntime: "crun" 4
프로세스
ContainerRuntimeConfig
CR을 사용하여 CRI-O 설정을 변경합니다.
ContainerRuntimeConfig
CR의 YAML 파일을 생성합니다.apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig metadata: name: overlay-size spec: machineConfigPoolSelector: matchLabels: pools.operator.machineconfiguration.openshift.io/worker: '' 1 containerRuntimeConfig: 2 logLevel: debug overlaySize: 8G
ContainerRuntimeConfig
CR을 생성합니다.$ oc create -f <file_name>.yaml
CR이 생성되었는지 확인합니다.
$ oc get ContainerRuntimeConfig
출력 예
NAME AGE overlay-size 3m19s
새
containerruntime
머신 구성이 생성되었는지 확인합니다.$ oc get machineconfigs | grep containerrun
출력 예
99-worker-generated-containerruntime 2c9371fbb673b97a6fe8b1c52691999ed3a1bfc2 3.2.0 31s
모두 준비 상태로 표시될 때까지 머신 구성 풀을 모니터링합니다.
$ oc get mcp worker
출력 예
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE worker rendered-worker-169 False True False 3 1 1 0 9h
설정이 CRI-O에 적용되었는지 확인하려면 다음을 실행합니다.
머신 구성 풀의 노드에
oc debug
세션을 열고chroot /host
를 실행합니다.$ oc debug node/<node_name>
sh-4.4# chroot /host
crio.conf
파일의 변경 사항을 확인합니다.sh-4.4# crio config | grep 'log_level'
출력 예
log_level = "debug"
'storage.conf' 파일의 변경 사항을 확인합니다.
sh-4.4# head -n 7 /etc/containers/storage.conf
출력 예
[storage] driver = "overlay" runroot = "/var/run/containers/storage" graphroot = "/var/lib/containers/storage" [storage.options] additionalimagestores = [] size = "8G"