4.15. 커널 모듈에 대한 업그레이드 사용자 정의
필요한 경우 노드 재부팅을 포함하여 노드에서 유지보수 작업을 실행하는 동안 커널 모듈을 업그레이드하려면 다음 절차를 사용하십시오. 클러스터에서 실행되는 워크로드에 미치는 영향을 최소화하려면 한 번에 하나의 노드인 커널 업그레이드 프로세스를 순차적으로 실행합니다.
이 절차에서는 커널 모듈을 사용하는 워크로드에 대한 지식이 필요하며 클러스터 관리자가 관리해야 합니다.
사전 요구 사항
-
업그레이드하기 전에 커널 모듈에서 사용하는 모든 노드에서
kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=$moduleVersion
레이블을 설정합니다. - 노드의 모든 사용자 애플리케이션 워크로드를 종료하거나 다른 노드로 이동합니다.
- 현재 로드된 커널 모듈을 언로드합니다.
- 사용자 워크로드(커널 모듈에 액세스하는 클러스터에서 실행 중인 애플리케이션)가 커널 모듈 언로드 전에 노드에서 실행되지 않고 새 커널 모듈 버전이 로드된 후 노드에서 워크로드가 다시 실행되고 있는지 확인합니다.
프로세스
- 노드의 KMM에서 관리하는 장치 플러그인이 언로드되었는지 확인합니다.
Module
CR(사용자 정의 리소스)에서 다음 필드를 업데이트합니다.-
containerImage
(해당 커널 버전) version
업데이트는 atomic이어야 합니다. 즉
containerImage
및version
필드를 동시에 업데이트해야 합니다.
-
- 업그레이드 중인 노드에서 커널 모듈을 사용하여 모든 워크로드를 종료합니다.
노드에서
kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name
> 레이블을 제거합니다. 다음 명령을 실행하여 노드에서 커널 모듈을 언로드합니다.oc label node/<node_name> kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>-
$ oc label node/<node_name> kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우, 클러스터 관리자로서 커널 모듈 업그레이드를 위해 노드에서 필요한 추가 유지보수를 수행합니다.
추가 업그레이드가 필요하지 않은 경우
kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>
레이블 값을Module
에 설정된 대로 새$moduleVersion
으로 업데이트하여 3~6단계를 건너뛸 수 있습니다.다음 명령을 실행하여
kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=$moduleVersion
레이블을 노드에 추가합니다.$moduleVersion
은Module
CR의version
필드의 새 값과 같아야 합니다.oc label node/<node_name> kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=<desired_version>
$ oc label node/<node_name> kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=<desired_version>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고레이블 이름의 Kubernetes 제한으로 인해
모듈
이름과 네임스페이스의 결합된 길이는 39자를 초과해서는 안 됩니다.- 노드에서 커널 모듈을 활용하는 모든 워크로드를 복원합니다.
- 노드에서 KMM에서 관리하는 장치 플러그인을 다시 로드합니다.