2장. MTC 릴리스 노트
2.1. Migration Toolkit for Containers 1.8 릴리스 노트
MTC(Migration Toolkit for Containers) 릴리스 노트에서는 새로운 기능 및 개선 사항, 더 이상 사용되지 않는 기능 및 알려진 문제에 대해 설명합니다.
MTC를 사용하면 네임스페이스 단위로 OpenShift Container Platform 클러스터 간에 애플리케이션 워크로드를 마이그레이션할 수 있습니다.
MTC는 마이그레이션을 제어하고 애플리케이션 다운타임을 최소화할 수 있도록 Kubernetes 사용자 지정 리소스를 기반으로 하는 웹 콘솔 및 API를 제공합니다.
MTC 지원 정책에 대한 자세한 내용은 Red Hat OpenShift Container Platform 라이프 사이클 정책의 일부인 OpenShift 애플리케이션 및 클러스터 마이그레이션 솔루션을 참조하십시오.
2.1.1. Migration Toolkit for Containers 1.8.4 릴리스 노트
2.1.1.1. 기술 변경 사항
MTC(Migration Toolkit for Containers) 1.8.4에는 다음과 같은 기술적 변경 사항이 있습니다.
- MTC 1.8.4는 OADP(OpenShift API for Data Protection) 1.4 사용에 대한 지원을 포함하도록 종속성 확인을 확장합니다.
DirectVolumeMigration을 사용하여 KubeVirt 가상 머신 지원
MTC 1.8.4에는 직접 볼륨 마이그레이션(DVM)을 통한 KubeVirt VM(가상 머신) 지원이 추가되었습니다.
2.1.1.2. 해결된 문제
MTC 1.8.4에는 다음과 같은 주요 해결된 문제가 있습니다.
OpenShift Virtualization이 설치되면 Ansible Operator가 손상됨
python3-openshift
패키지에는 예외적으로 ValueError: 작업 중에 반환되는 압축을 풀기 위해 너무 많은 값을
노출하는 python3-openshift 패키지에 버그가 있습니다. MTC 1.8.4 이전 버전은 영향을 받지만 MTC 1.8.4에서는 해결 방법을 구현했습니다. MTC 1.8.4로 업데이트하면 더 이상 이 문제의 영향을 받지 않습니다. (OCPBUGS-38116)
마이그레이션 계획을 생성하는 동안 네임스페이스에서 UI가 고정됨
MTC UI에서 마이그레이션 계획을 생성하려고 하면 마이그레이션 계획 마법사가 네임스페이스 단계에서 중단됩니다. 이 문제는 MTC 1.8.4에서 해결되었습니다. (MIG-1597)
버전 kubevirt/v1의 종류 가상 머신에 대해 일치하는 항목이 없는 오류로 인해 마이그레이션이 실패합니다.
애플리케이션을 마이그레이션하는 동안 백업, DVM 및 복원을 포함하여 필요한 모든 단계가 성공적으로 완료됩니다. 그러나 오류 메시지 no matches for kind Virtual machine in version kubevirt/v1
과 함께 마이그레이션이 실패로 표시됩니다. (MIG-1594)
소스 네임스페이스와 다른 네임스페이스로 마이그레이션할 때 직접 볼륨 마이그레이션이 실패합니다.
소스 클러스터에서 대상 클러스터로의 마이그레이션을 수행할 때 대상 네임스페이스가 소스 네임스페이스와 다르면 DVM이 실패합니다. (MIG-1592)
직접 이미지 마이그레이션은 migplan의 라벨 선택기를 인식하지 않습니다.
직접 이미지 마이그레이션(DIM)을 사용할 때 마이그레이션 계획에 라벨 선택기가 설정된 경우 DIM은 이를 준수하지 않고 네임스페이스의 모든 이미지 스트림을 마이그레이션하려고 합니다. (MIG-1533)
2.1.1.3. 확인된 문제
MTC 1.8.4에는 다음과 같은 알려진 문제가 있습니다.
서비스 계정에 연결된 SCC는 OpenShift Container Platform 4.12에서 마이그레이션할 수 없습니다.
OpenShift Container Platform 4.12의 서비스 계정에 대한 관련 SCC(보안 컨텍스트 제약 조건)는 마이그레이션할 수 없습니다. 이 문제는 향후 MTC 릴리스에서 해결될 예정입니다. (MIG-1454)
rsync Pod가 시작되지 않아 DVM 단계가 실패합니다.
권한 문제로 인해 Rsync Pod가 시작되지 않아 DVM 단계가 실패합니다.
마이그레이션된 빌더 Pod가 이미지 레지스트리로 푸시되지 않음
BuildConfig
를 소스에서 대상 클러스터로 마이그레이션하는 경우 빌더 Pod가 오류가 발생하여 이미지를 이미지 레지스트리로 내보내지 않습니다.
충돌 조건이 생성된 후 간단히 지워집니다.
충돌 오류가 발생하는 새 상태 마이그레이션 계획을 생성하면 해당 오류가 표시된 후 해당 오류가 지워집니다.
PvCapacityAdjustmentRequired Warning not Displayed after Setting pv_resizing_threshold
pv_resizing_threshold
를 조정한 후 PvCapacityAdjustmentRequired
경고가 마이그레이션 계획에 표시되지 않습니다.
2.1.2. Migration Toolkit for Containers 1.8.3 릴리스 노트
2.1.2.1. 기술 변경 사항
MTC(Migration Toolkit for Containers) 1.8.3에는 다음과 같은 기술적 변경 사항이 있습니다.
OADP 1.3 지원
MTC 1.8.3은 MTC 1.8.z의 종속성으로 OADP(OpenShift API for Data Protection)에 대한 지원을 추가합니다.
2.1.2.2. 해결된 문제
MTC 1.8.3에는 다음과 같은 주요 해결된 문제가 있습니다.
CVE-2024-24786: Golang protobuf
모듈의 Flaw로 인해 unmarshal
함수가 무한 루프에 들어갑니다.
이전 MTC 릴리스에서는 Golang의 protobuf
모듈에서 취약점이 발견되었습니다. 여기서 unmarshal
함수가 특정 잘못된 입력을 처리하는 동안 무한 루프를 입력했습니다. 결과적으로 공격자는 잘못된 입력을 신중하게 구성하여 함수가 무한 루프에 진입했습니다.
이번 업데이트를 통해 unmarshal
기능이 예상대로 작동합니다.
자세한 내용은 CVE-2024-24786 을 참조하십시오.
CVE-2023-45857: Axios Cross-Site Request Forgery Vulnerability
이전 MTC 릴리스에서는 Axios 1.5.1에서 취약점이 발견되었으며, Axios 1.5.1에서는 공격자가 중요한 정보를 볼 수 있도록 HTTP 헤더 X-XSRF-TOKEN
을 포함하여 템플릿에 저장된 기밀 XSRF-TOKEN
을 공개했습니다.
자세한 내용은 CVE-2023-45857 에서 참조하십시오.
소스 워크로드가 quiesced되지 않으면 Restic 백업이 제대로 작동하지 않습니다.
이전 MTC 릴리스에서는 경로를 사용하여 애플리케이션을 배포할 때 일부 파일이 마이그레이션되지 않았습니다. 소스 워크로드에 대해 quiesce 옵션을 선택하지 않은 경우 Restic 백업이 예상대로 작동하지 않았습니다.
이 문제는 MTC 1.8.3에서 해결되었습니다.
자세한 내용은 BZ#2242064 에서 참조하십시오.
Velero에서 지원되지 않는 값 오류로 인해 Migration Controller
를 설치하지 못했습니다
Velero에서 지원되지 않는 값 오류로 인해 MigrationController
를 설치하지 못했습니다. OADP 1.3.0을 OADP 1.3.1로 업데이트하면 이 문제가 해결됩니다. 자세한 내용은 BZ#2267018 에서 참조하십시오.
이 문제는 MTC 1.8.3에서 해결되었습니다.
해결된 모든 문제의 전체 목록은 Jira의 MTC 1.8.3 해결 문제 목록을 참조하십시오.
2.1.2.3. 확인된 문제
MTC(Migration Toolkit for Containers) 1.8.3에는 다음과 같은 알려진 문제가 있습니다.
OpenShift Virtualization이 설치되면 Ansible Operator가 손상됨
python3-openshift
패키지에는 예외적으로 ValueError: 작업 중에 반환되는 압축을 풀기 위해 너무 많은 값을
노출하는 python3-openshift 패키지에 버그가 있습니다. MTC 1.8.4에서 해결 방법을 구현했습니다. MTC 1.8.4로 업데이트하면 더 이상 이 문제의 영향을 받지 않습니다. (OCPBUGS-38116)
서비스 계정에 연결된 SCC는 OpenShift Container Platform 4.12에서 마이그레이션할 수 없습니다.
OpenShift Container Platform 버전 4.12의 서비스 계정에 대한 관련 SCC(보안 컨텍스트 제약 조건)는 마이그레이션할 수 없습니다. 이 문제는 향후 MTC 릴리스에서 해결될 예정입니다. (MIG-1454)
알려진 모든 문제의 전체 목록은 Jira의 MTC 1.8.3 알려진 문제 목록을 참조하십시오.
2.1.3. Migration Toolkit for Containers 1.8.2 릴리스 노트
2.1.3.1. 해결된 문제
이 릴리스에는 다음과 같은 주요 해결된 문제가 있습니다.
사용자 정의 CA 복제 리포지토리를 설정한 후 백업 단계가 실패합니다.
이전 릴리스의 MTC(Migration Toolkit for Containers)에서는 복제 리포지토리를 편집하고, 사용자 정의 CA 인증서를 추가하고, 리포지토리를 성공적으로 연결하며, 마이그레이션을 트리거하면 백업 단계에서 오류가 발생했습니다.
CVE-2023-26136: 4.1.3 이전의 hard-cookie 패키지는 Prototype Pollution에 취약합니다.
이전 (MTC) 릴리스에서는 MTC에서 사용되는 hard-cookie
패키지의 4.1.3 이전 버전에서는 프로토타입의 오염에 취약합니다. 이 취약점은 rejectPublicSuffixes
의 값이 false
로 설정되었을 때ieJar가 쿠키를 올바르게 처리하지 않았기 때문에 발생했습니다.
자세한 내용은 (CVE-2023-26136)에서 참조하십시오.
CVE-2022-25883 openshift-migration-ui-container: nodejs-semver: 정규식 서비스 거부
이전 릴리스 (MTC)에서 MTC에서 사용되는 7.5.2 이전의 semver
패키지 버전은 신뢰할 수 없는 사용자 데이터가 범위로 제공된 경우 newRange
함수의 정규식 서비스 거부 (ReDoS)에 취약했습니다.
자세한 내용은 (CVE-2022-25883)에서 참조하십시오.
2.1.3.2. 확인된 문제
MTC 1.8.2에는 다음과 같은 알려진 문제가 있습니다.
OpenShift Virtualization이 설치되면 Ansible Operator가 손상됨
python3-openshift
패키지에는 예외적으로 ValueError: 작업 중에 반환되는 압축을 풀기 위해 너무 많은 값을
노출하는 python3-openshift 패키지에 버그가 있습니다. MTC 1.8.4에서 해결 방법을 구현했습니다. MTC 1.8.4로 업데이트하면 더 이상 이 문제의 영향을 받지 않습니다. (OCPBUGS-38116)
2.1.4. Migration Toolkit for Containers 1.8.1 릴리스 노트
2.1.4.1. 해결된 문제
MTC(Migration Toolkit for Containers) 1.8.1에는 다음과 같은 주요 문제가 해결되었습니다.
CVE-2023-39325: golang: net/http, x/net/http2: 빠른 스트림 재설정으로 인해 과도한 작업이 발생할 수 있습니다.
MTC에서 사용하는 HTTP/2 프로토콜에서 멀티플렉싱된 스트림을 처리하는 데 취약점이 발견되었습니다. 클라이언트는 반복적으로 새로운 멀티플렉싱 스트림을 요청하고 이를 취소하기 위해 RST_STREAM
프레임을 즉시 보낼 수 있습니다. 이렇게 하면 스트림 설정 및 해제 측면에서 서버에 대한 추가 워크로드가 생성되는 반면 연결당 최대 활성 스트림 수에 대한 서버 측 제한을 방지하여 서버 리소스 사용량으로 인해 서비스 거부가 발생합니다. (BZ#2245079)
이 문제를 해결하려면 MTC 1.8.1 이상으로 업데이트하는 것이 좋습니다.
자세한 내용은 (CVE-2023-39325) 및 (CVE-2023-44487)를 참조하십시오.
2.1.4.2. 확인된 문제
MTC(Migration Toolkit for Containers) 1.8.1에는 다음과 같은 알려진 문제가 있습니다.
OpenShift Virtualization이 설치되면 Ansible Operator가 손상됨
OpenShift Virtualization을 설치하는 python3-openshift
패키지에는 버그가 있습니다. ValueError: 너무 많은 값을 압축 해제하는
예외가 작업 중에 반환됩니다. MTC 1.8.4에서 해결 방법을 구현했습니다. MTC 1.8.4로 업데이트하면 더 이상 이 문제의 영향을 받지 않습니다. (OCPBUGS-38116)
2.1.5. Migration Toolkit for Containers 1.8.0 릴리스 노트
2.1.5.1. 해결된 문제
MTC(Migration Toolkit for Containers) 1.8.0에는 다음과 같은 해결된 문제가 있습니다.
간접 마이그레이션은 백업 단계에 있습니다.
이전 릴리스에서는 InvalidImageName
오류로 인해 백업 단계에서 간접 마이그레이션이 중단되었습니다.(BZ#2233097)
PodVolumeRestore는 마이그레이션이 복원 단계에서 중단되도록 계속 진행 중 상태로 유지됩니다.
이전 릴리스에서는 간접 마이그레이션을 수행할 때 Podvolumerestore
가 완료될 때까지 단계 복원
단계에서 마이그레이션이 중단되었습니다.(BZ#2233868)
마이그레이션된 애플리케이션이 대상 클러스터의 내부 레지스트리에서 이미지를 가져올 수 없음
이전 릴리스에서는 애플리케이션을 대상 클러스터로 마이그레이션할 때 마이그레이션된 애플리케이션이 내부 이미지 레지스트리에서 이미지를 가져오지 못했습니다. (
BZ#2233103)
권한 부여 문제로 인해 Azure에서 마이그레이션 실패
이전 릴리스에서는 Azure 클러스터에 백업할 때 백업
단계에서 마이그레이션이 실패했습니다.(BZ#2238974)
2.1.5.2. 확인된 문제
MTC 1.8.0에는 다음과 같은 알려진 문제가 있습니다.
OpenShift Virtualization이 설치되면 Ansible Operator가 손상됨
python3-openshift
패키지에는 작업 중에 반환된 압축을 풀기 위해 ValueError: too many values를 제외하고 OpenShift Virtualization이 노출하는
버그가 있습니다. MTC 1.8.4에서 해결 방법을 구현했습니다. MTC 1.8.4로 업데이트하면 더 이상 이 문제의 영향을 받지 않습니다. (OCPBUGS-38116)
이전 Restic Pod는 MTC 1.7.x
이번 릴리스에서는 MTC Operator를 1.7.x에서 1.8.x로 업그레이드할 때 이전 Restic Pod가 제거되지 않습니다. 따라서 업그레이드 후 Restic 및 node-agent Pod가 네임스페이스에 표시됩니다.(BZ#2236829)
마이그레이션된 빌더 Pod가 이미지 레지스트리로 푸시되지 않음
이번 릴리스에서는 소스에서 대상 클러스터로 BuildConfig
를 포함한 애플리케이션을 마이그레이션할 때 빌더 Pod가 오류가
발생하여 이미지를 이미지 레지스트리로 푸시하지 못했습니다.(BZ#2234781)
[UI] CA 번들 파일 필드가 올바르게 지워지지 않음
이번 릴리스에서는 MigStorage의 MCG NooBaa 버킷에 대한 Require SSL verification
및 CA 번들 파일에 콘텐츠를 추가한 후 예상대로 연결이 실패합니다. 그러나 CA 번들 콘텐츠를 제거하고 Require SSL verification
를 지워 이러한 변경 사항을 되돌릴 때 여전히 연결에 실패합니다. 리포지토리를 삭제하고 다시 추가하는 경우에만 문제가 해결됩니다.(BZ#2240052)
사용자 정의 CA 복제 리포지토리를 설정한 후 백업 단계가 실패합니다.
(MTC)에서 복제 리포지토리를 편집하고 사용자 정의 CA 인증서를 추가하고 리포지토리를 성공적으로 연결한 후 마이그레이션을 트리거하면 백업 단계에서 오류가 발생합니다.
이 문제는 MTC 1.8.2에서 해결되었습니다.
CVE-2023-26136: 4.1.3 이전의 hard-cookie 패키지는 Prototype Pollution에 취약합니다.
MTC에 사용되는 hard-cookie
패키지의 4.1.3 이전 버전은 프로토타입 문제 해결에 취약합니다. 이 취약점은 rejectPublicSuffixes
의 값이 false
로 설정된 경우 CryostatJar가 쿠키를 올바르게 처리하지 않기 때문에 발생합니다.
이 문제는 MTC 1.8.2에서 해결되었습니다.
자세한 내용은 (CVE-2023-26136)에서 참조하십시오.
CVE-2022-25883 openshift-migration-ui-container: nodejs-semver: 정규식 서비스 거부
이전 릴리스 (MTC)에서 MTC에서 사용되는 7.5.2 이전의 semver
패키지 버전은 신뢰할 수 없는 사용자 데이터가 범위로 제공되는 경우 newRange
함수의 정규식 서비스 거부 (ReDoS)에 취약합니다.
이 문제는 MTC 1.8.2에서 해결되었습니다.
자세한 내용은 (CVE-2022-25883)에서 참조하십시오.
2.1.5.3. 기술 변경 사항
이 릴리스에는 다음과 같은 기술 변경 사항이 있습니다.
- OpenShift Container Platform 3에서 OpenShift Container Platform 4로 마이그레이션하려면 레거시 Migration Toolkit for Containers Operator 및 Migration Toolkit for Containers 1.7.x가 필요합니다.
- MTC 1.7.x에서 MTC 1.8.x로의 마이그레이션은 지원되지 않습니다.
MTC 1.7.x를 사용하여 OpenShift Container Platform 4.9 이하의 소스로 모든 항목을 마이그레이션해야 합니다.
- MTC 1.7.x는 소스 및 대상 모두에서 사용해야 합니다.
MTC(Migration Toolkit for Containers) 1.8.x는 OpenShift Container Platform 4.10 이상에서 OpenShift Container Platform 4.10 이상으로의 마이그레이션만 지원합니다. 클러스터 버전 4.10 이상과 관련된 마이그레이션의 경우 1.7.x 또는 1.8.x 중 하나를 사용할 수 있습니다. 그러나 소스와 대상 모두에서 동일한 MTC 1.Y.z여야 합니다.
- 소스 MTC 1.7.x에서 대상 MTC 1.8.x로의 마이그레이션은 지원되지 않습니다.
- 소스 MTC 1.8.x에서 대상 MTC 1.7.x로의 마이그레이션은 지원되지 않습니다.
- 소스 MTC 1.7.x에서 대상 MTC 1.7.x로의 마이그레이션이 지원됩니다.
- 소스 MTC 1.8.x에서 대상 MTC 1.8.x로의 마이그레이션이 지원됩니다.
- MTC 1.8.x는 기본적으로 OADP 1.2.x를 설치합니다.
- MTC 1.7.x에서 MTC 1.8.0으로 업그레이드하려면 OADP 채널을 1.2로 수동으로 변경해야 합니다. 이 작업이 완료되지 않으면 Operator 업그레이드가 실패합니다.