2.3.2. CRI-O 매개 변수를 편집하기 위한 ContainerRuntimeConfig CR 작성

ContainerRuntimeConfig 사용자 지정 리소스 정의 (CRD)는 OpenShift Container Platform CRI-O 런타임과 관련된 설정을 변경하기위한 체계적인 방법을 제공합니다. ContainerRuntimeConfig 사용자 지정 리소스 (CR)를 사용하여 원하는 구성 값을 선택하면 MCO는 crio.confstorage.conf 설정 파일의 다시 빌드를 처리합니다.

ContainerRuntimeConfig CR을 사용하여 다음 설정을 수정할 수 있습니다.

  • PID 제한: pidsLimit 매개변수는 컨테이너에 허용되는 최대 프로세스 수인 CRI-O pids_limit 매개변수를 설정합니다. 기본값은 1024 (pids_limit = 1024)입니다.
  • 로그 수준: logLevel 매개변수는 로그 메시지의 상세 수준인 CRI-O log_level 매개변수를 설정합니다. 기본값은 info (log_level = info)입니다. 기타 다른 옵션에는 fatal, panic, error, warn, debug, trace가 포함됩니다.
  • 오버레이 크기: overlaySize 매개변수는 컨테이너 이미지의 최대 크기인 CRI-O Overlay 스토리지 드라이버 size 매개변수를 설정합니다.
  • 최대 로그 크기: logSizeMax 매개변수는 컨테이너 로그 파일에 허용되는 최대 크기인 CRI-O log_size_max 매개변수를 설정합니다. 기본값은 무제한입니다 (log_size_max = -1). 이 값이 양수로 설정되는 경우 ConMon 읽기 버퍼보다 작지 않게하려면 8192 이상으로 해야합니다. ConMon은 단일 컨테이너의 컨테이너 관리자 (예: Podman 또는 CRI-O)와 OCI 런타임 (예: runc 또는 crun) 간의 통신을 모니터링하는 프로그램입니다.

다음 절차에서는 ContainerRuntimeConfig CR을 사용하여 CRI-O 설정을 변경하는 방법을 설명합니다.

절차

  1. pidsLimit를 2048로 늘리려면 logLeveldebugoverlaySize를 8 GB로 설정하고 해당 설정이 포함된 CR 파일 (예: overlay-size.yaml)을 만듭니다.

    $ cat << EOF > /tmp/overlay-size.yaml
    apiVersion: machineconfiguration.openshift.io/v1
    kind: ContainerRuntimeConfig
    metadata:
     name: overlay-size
    spec:
     machineConfigPoolSelector:
       matchLabels:
         custom-crio: overlay-size
     containerRuntimeConfig:
       pidsLimit: 2048
       logLevel: debug
       overlaySize: 8G
    EOF
  2. ContainerRuntimeConfig 개체 설정을 적용하려면 다음을 실행합니다.

    $ oc create -f /tmp/overlay-size.yaml
  3. YAML 파일이 설정을 적용했는지 확인하려면 다음 명령을 실행합니다.

    $ oc get ContainerRuntimeConfig
    NAME           AGE
    overlay-size   3m19s
  4. worker와 같은 머신 풀을 편집하려면 다음 명령을 실행하여 머신 설정풀을 엽니다.

    $ oc edit machineconfigpool worker
  5. containerruntime 개체가 machineconfigs 아래에 표시되었는지 확인합니다:

    $ oc get machineconfigs | grep containerrun
    99-worker-generated-containerruntime   2c9371fbb673b97a6fe8b1c52691999ed3a1bfc2  3.1.0  31s
  6. 모두 준비 상태가 될 때까지 변경 사항이 머신으로 롤링될 때 machine config pool을 모니터링합니다.

    $ 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

  7. 작업자 노드에 대한 oc 디버그 세션을 열고 chroot / host를 실행하십시오.
  8. 다음을 실행하여 변경 사항을 확인합니다.

    $ crio config | egrep 'log_level|pids_limit'

    출력 예

    pids_limit = 2048
    log_level = "debug"

    $ 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"