2.3. 커널 모듈 관리(KMM) 모듈에 대한 사전 검증
KMM 모듈이 적용된 클러스터에서 업그레이드를 수행하기 전에, 클러스터 업그레이드 및 가능한 커널 업그레이드 후에 KMM을 사용하여 설치된 커널 모듈을 노드에 설치할 수 있는지 확인해야 합니다. preflight는 클러스터에 로드된 모든 Module
을 병렬로 검증하려고 합니다. preflight는 다른 Module
의 검증을 시작하기 전에 하나의 Module
의 유효성 검사가 완료될 때까지 기다리지 않습니다.
2.3.1. 검증 시작 링크 복사링크가 클립보드에 복사되었습니다!
사전 검증은 클러스터에 PreflightValidationOCP
리소스를 생성하여 트리거됩니다. 이 리소스에는 다음 필드가 포함되어 있습니다.
dtkImage
클러스터의 특정 OpenShift 컨테이너 플랫폼 버전에 대해 DTK 컨테이너 이미지가 릴리스되었습니다. 이 값이 설정되지 않으면
DTK_AUTO
기능을 사용할 수 없습니다.클러스터에서 다음 명령 중 하나를 실행하여 이미지를 얻을 수 있습니다.
For x86_64 image: oc adm release info quay.io/openshift-release-dev/ocp-release:4.19.0-x86_64 --image-for=driver-toolkit
# For x86_64 image: $ oc adm release info quay.io/openshift-release-dev/ocp-release:4.19.0-x86_64 --image-for=driver-toolkit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For ARM64 image: oc adm release info quay.io/openshift-release-dev/ocp-release:4.19.0-aarch64 --image-for=driver-toolkit
# For ARM64 image: $ oc adm release info quay.io/openshift-release-dev/ocp-release:4.19.0-aarch64 --image-for=driver-toolkit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kernelVersion
클러스터가 업그레이드되는 커널 버전을 제공하는 필수 필드입니다.
클러스터에서 다음 명령을 실행하여 버전을 얻을 수 있습니다.
podman run -it --rm $(oc adm release info quay.io/openshift-release-dev/ocp-release:4.19.0-x86_64 --image-for=driver-toolkit) cat /etc/driver-toolkit-release.json
$ podman run -it --rm $(oc adm release info quay.io/openshift-release-dev/ocp-release:4.19.0-x86_64 --image-for=driver-toolkit) cat /etc/driver-toolkit-release.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pushBuiltImage
-
true
인 경우 빌드 및 서명 검증 중에 생성된 이미지가 해당 저장소에 푸시됩니다. 이 필드는 기본적으로false
입니다.
2.3.2. 검증 라이프사이클 링크 복사링크가 클립보드에 복사되었습니다!
사전 검증은 클러스터에 로드된 모든 모듈의 유효성을 검증하려고 시도합니다. 검증이 성공하면 Preflight는 모듈
리소스에 대한 검증 실행을 중지합니다. 모듈 유효성 검사에 실패하면 모듈 정의를 변경하고 Preflight는 다음 루프에서 모듈의 유효성 검사를 다시 시도합니다.
추가 커널에 대해 Preflight 유효성 검사를 실행하려면 해당 커널에 대한 또 다른 PreflightValidationOCP
리소스를 만들어야 합니다. 모든 모듈의 유효성이 검사된 후에는 PreflightValidationOCP
리소스를 삭제하는 것이 좋습니다.
2.3.3. 검증 상태 링크 복사링크가 클립보드에 복사되었습니다!
PreflightValidationOCP
리소스는 .status.modules
목록에서 검증을 시도하거나 검증을 시도한 클러스터의 각 모듈의 상태와 진행 상황을 보고합니다. 해당 목록의 요소에는 다음 필드가 포함됩니다.
name
-
모듈
리소스의 이름입니다. 네임스페이스
-
모듈
리소스의 네임스페이스입니다. statusReason
- 상태에 대한 구두 설명.
verificationStage
실행 중인 검증 단계를 설명합니다.
-
이미지
: 이미지 존재 검증 -
완료
: 검증이 완료되었습니다.
-
verificationStatus
모듈 검증 상태:
-
성공
: 확인됨 -
실패
: 검증에 실패했습니다 -
진행 중
: 검증이 진행 중입니다.
-
2.3.4. 이미지 검증 단계 링크 복사링크가 클립보드에 복사되었습니다!
이미지 검증은 항상 사전 검증의 첫 번째 단계로 실행됩니다. 이미지 검증이 성공하면 해당 모듈에서 다른 검증은 실행되지 않습니다. Operator는 컨테이너 런타임을 사용하여 모듈에서 업데이트된 커널에 대한 이미지 존재 및 접근성을 확인합니다.
이미지 검증이 실패하고 업그레이드된 커널과 관련된 모듈에 빌드/서명
섹션이 있는 경우, 컨트롤러는 이미지를 빌드하거나 서명하려고 시도합니다. PreflightValidationOCP
리소스에 PushBuiltImage
플래그가 정의된 경우 컨트롤러는 결과 이미지를 해당 저장소에 푸시하려고 시도합니다. 결과 이미지 이름은 모듈
CR의 containerImage
필드 정의에서 가져옵니다.
빌드
섹션이 있는 경우, 표지판
섹션의 입력 이미지는 빌드
섹션의 출력 이미지로 사용됩니다. 따라서 입력 이미지를 기호
섹션에서 사용할 수 있으려면 PreflightValidationOCP
CR에 PushBuiltImage
플래그를 정의해야 합니다.
2.3.5. PreflightValidationOCP 리소스의 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예에서는 YAML 형식의 PreflightValidationOCP
리소스를 보여줍니다.
이 예제에서는 현재 존재하는 모든 모듈을 다가올 5.14.0-570.19.1.el9_6.x86_64
커널과 비교 검증합니다. .spec.pushBuiltImage
가 true
로 설정되었으므로 KMM은 Build/Sign의 결과 이미지를 정의된 저장소에 푸시합니다.