This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.14.2.2.2. OpenShift Container Platform에 커널 모듈 프로비저닝
OpenShift Container Platform 클러스터를 처음 부팅할 때 커널 모듈을 활성화할 필요가 있는지 여부에 따라 다음 두 가지 방법 중 하나로 커널 모듈을 배포하도록 설정할 수 있습니다.
-
클러스터 설치시 커널 모듈 프로비저닝 (day-1):
MachineConfig
오브젝트로 콘텐츠를 생성하고 매니페스트 파일 세트와 함께 포함하여openshift-install
에 제공할 수 있습니다. - Machine Config Operator (day-2)를 통한 커널 모듈 프로비저닝: 커널 모듈을 추가하기 위해 클러스터가 가동되고 실행될 때까지 대기할 수 있는 경우 MCO(Machine Config Operator)를 통해 커널 모듈 소프트웨어를 배포할 수 있습니다.
두 경우 모두 새 커널이 감지되면 각 노드에서 커널 소프트웨어 패키지 및 관련 소프트웨어 패키지를 가져올 수 있어야 합니다. 해당 콘텐츠를 가져올 수 있도록 각 노드를 설정할 수있는 몇 가지 방법이 있습니다.
- 각 노드에 RHEL 인타이틀먼트를 제공합니다.
-
/ etc / pki / entitlement
디렉터리에서 기존 RHEL 호스트의 RHEL 인타이틀먼트를 취득하고 Ignition 설정을 빌드할 때 제공하는 다른 파일과 동일한 위치에 복사합니다. -
Dockerfile에서 커널 및 기타 패키지가 포함된
yum
저장소에 대한 포인터를 추가합니다. 여기에는 새로 설치된 커널과 일치해야하므로 새 커널 패키지가 포함되어 있어야합니다.
14.2.2.2.1. MachineConfig 개체를 통한 커널 모듈 프로비저닝 링크 복사링크가 클립보드에 복사되었습니다!
MachineConfig
개체로 커널 모듈 소프트웨어를 패키지하면 설치시 또는 Machine Config Operator를 통해 해당 소프트웨어를 작업자 또는 마스터 노드에 전달할 수 있습니다.
먼저 사용하려는 기본 Ignition 설정을 만듭니다 설치시 Ignition 설정에는 클러스터에서 core
사용자의 authorized_keys
파일에 추가할 ssh 공개 키가 포함됩니다. 나중에 MCO를 통해 MachineConfig
개체를 추가하는 경우 SSH 공개키가 필요하지 않습니다. 두 가지 유형 모두 샘플 simple-kmod 서비스는 kmds-via-containers@simple-kmod.service
가 필요한 systemd 장치 파일을 만듭니다.
systemd 장치는 업스트림 버그에 대한 해결 방법이며 kmods-via-containers@simple-kmod.service
가 부팅시 시작되도록합니다.
RHEL 8 시스템을 등록합니다.
subscription-manager register
# subscription-manager register
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHEL 8 시스템에 서브스크립션을 연결합니다.
subscription-manager attach --auto
# subscription-manager attach --auto
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소프트웨어를 빌드하는 데 필요한 소프트웨어를 설치합니다.
yum install podman make git -y
# yum install podman make git -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd 장치 파일을 만들 Ignition 설정 파일을 만듭니다.
Ignition 설정 파일을 호스팅할 디렉터리를 만듭니다.
mkdir kmods; cd kmods
$ mkdir kmods; cd kmods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd 장치 파일을 만들 Ignition 설정 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고openshift-install
중에 파일을 사용하려면 공개 SSH 키를baseconfig.ign
파일에 추가해야 합니다. MCO를 통해MachineConfig
개체를 생성하는 경우 공개 SSH 키가 필요하지 않습니다.
다음 설정을 사용하는 기본 MCO YAML 스니펫을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고mc-base.yaml
은worker
노드에 커널 모듈을 배포하도록 설정되어 있습니다. 마스터 노드에 배포하려면 역할을worker
에서master
로 변경하십시오. 이 두 가지 작업을 수행하려면 여러유형의 배포에 서로 다른 파일 이름을 사용하여 전체 프로세스를 반복할 수 있습니다.kmods-via-containers
소프트웨어를 가져옵니다:kmods-via-containers
저장소를 복제합니다.git clone https://github.com/kmods-via-containers/kmods-via-containers
$ git clone https://github.com/kmods-via-containers/kmods-via-containers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kvc-simple-kmod
저장소를 복제합니다.git clone https://github.com/kmods-via-containers/kvc-simple-kmod
$ git clone https://github.com/kmods-via-containers/kvc-simple-kmod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
모듈 소프트웨어를 가져옵니다. 이 예에서는
kvc-simple-kmod
가 사용됩니다. 이전에 복제된 리포지토리를 사용하여 fakeroot 디렉터리를 만들고 Ignition을 통해 전달할 파일을 이 디렉터리에 배치합니다.
디렉터리를 만듭니다.
FAKEROOT=$(mktemp -d)
$ FAKEROOT=$(mktemp -d)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kmod-via-containers
디렉터리로 변경합니다.cd kmods-via-containers
$ cd kmods-via-containers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KVC 프레임워크 인스턴스를 설치합니다.
make install DESTDIR=${FAKEROOT}/usr/local CONFDIR=${FAKEROOT}/etc/
$ make install DESTDIR=${FAKEROOT}/usr/local CONFDIR=${FAKEROOT}/etc/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kvc-simple-kmod
디렉터리로 변경합니다.cd ../kvc-simple-kmod
$ cd ../kvc-simple-kmod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인스턴스를 생성합니다.
make install DESTDIR=${FAKEROOT}/usr/local CONFDIR=${FAKEROOT}/etc/
$ make install DESTDIR=${FAKEROOT}/usr/local CONFDIR=${FAKEROOT}/etc/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filetranspiler
라는 툴 및 종속 소프트웨어를 가져옵니다.cd .. ; sudo yum install -y python3
$ cd .. ; sudo yum install -y python3 git clone https://github.com/ashcrow/filetranspiler.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 최종 머신 구성 YAML (
mc.yaml
)을 생성하고 이를 전달하려는 파일과 함께 기본 Ignition 설정, 기본 머신 구성 및 fakeroot 디렉터리를 포함합니다../filetranspiler/filetranspile -i ./baseconfig.ign \ -f ${FAKEROOT} --format=yaml --dereference-symlinks \ | sed 's/^/ /' | (cat mc-base.yaml -) > 99-simple-kmod.yaml
$ ./filetranspiler/filetranspile -i ./baseconfig.ign \ -f ${FAKEROOT} --format=yaml --dereference-symlinks \ | sed 's/^/ /' | (cat mc-base.yaml -) > 99-simple-kmod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터가 아직 작동하지 않은 경우 매니페스트 파일을 생성하고 해당 파일을
openshift
디렉터리에 추가합니다. 클러스터가 이미 실행중인 경우 다음과 같이 파일을 적용합니다.oc create -f 99-simple-kmod.yaml
$ oc create -f 99-simple-kmod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드는
kmods-via-containers@simple-kmod.service
서비스를 시작하고 커널 모듈이 로드됩니다.커널 모듈이 로드되었는지 확인하려면
oc debug node / <openshift-node>
를 사용 후chroot / host를
사용하여 노드에 로그인할 수 있습니다. 모듈을 나열하려면lsmod
명령을 사용합니다.lsmod | grep simple_
$ lsmod | grep simple_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
simple_procfs_kmod 16384 0 simple_kmod 16384 0
simple_procfs_kmod 16384 0 simple_kmod 16384 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow