4.8. in-tree 종속 항목에 대한 심볼릭 링크
일부 커널 모듈은 노드의 운영 체제와 함께 제공되는 다른 커널 모듈에 따라 다릅니다. 이러한 종속성을 kmod 이미지에 복사하지 않도록 커널 모듈 관리(KMM)는 빌드와 작업자 Pod의 파일 시스템 모두에 /usr/lib/modules
를 마운트합니다.
/opt/usr/lib/modules/<kernel_version>/<symlink_name
>에서 /usr/lib/modules/<kernel_version
> .로 심볼릭 링크를 생성하면 depmod
는 빌드 노드의 파일 시스템에서 in-tree kmods를 사용하여 종속성을 해결할 수 있습니다.
런타임 시 작업자 Pod는 < symlink_name
> 심볼릭 링크를 포함하여 전체 이미지를 추출합니다. 해당 심볼릭 링크는 노드의 파일 시스템에서 마운트된 작업자 Pod의 /usr/lib/modules/<kernel_version
>을 가리킵니다. 그런 다음 modprobe
는 해당 링크를 따르고 필요에 따라 in-tree 종속 항목을 로드할 수 있습니다.
다음 예에서 host
는 /opt/usr/lib/modules/<kernel_version
> 아래에 있는 심볼릭 링크 이름입니다.
ARG DTK_AUTO FROM ${DTK_AUTO} as builder # # Build steps # FROM ubi9/ubi ARG KERNEL_FULL_VERSION RUN dnf update && dnf install -y kmod COPY --from=builder /usr/src/kernel-module-management/ci/kmm-kmod/kmm_ci_a.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/ COPY --from=builder /usr/src/kernel-module-management/ci/kmm-kmod/kmm_ci_b.ko /opt/lib/modules/${KERNEL_FULL_VERSION}/ # Create the symbolic link RUN ln -s /lib/modules/${KERNEL_FULL_VERSION} /opt/lib/modules/${KERNEL_FULL_VERSION}/host RUN depmod -b /opt ${KERNEL_FULL_VERSION}
depmod
는 kmod 이미지 빌드를 실행하는 노드에 있는 커널 모듈을 기반으로 종속성 파일을 생성합니다.
KMM이 커널 모듈을 로드하는 노드에서 modprobe
는 파일이 /usr/lib/modules/<kernel_version
> , 동일한 파일 시스템 레이아웃에 존재할 것으로 예상합니다. 빌드 및 대상 노드는 동일한 운영 체제 및 릴리스를 공유하는 것이 좋습니다.