Red Hat Enterprise Linux Container Compatibility Matrix
Red Hat Enterprise Linux에는 새로운 수준의 워크로드 격리 및 이식성을 지원하는 강력한 컨테이너 기술이 포함되어 있습니다. 컨테이너는 다른 컨테이너 간에 강력하게 격리되지만 중요한 인터페이스의 경우 기본 Linux 호스트와 커널에 직접 의존합니다. 컨테이너 이미지 및 컨테이너 호스트에서 운영 체제의 혼합 및 일치 버전에 대해 알려진 제한 사항이 있으며 이 문서에서는 지침 및 지원 제한 사항을 제공합니다.
⇓ 컨테이너 이미지 / 컨테이너 호스트 ⇒ | RHEL 7 호스트 | RHEL 8 호스트* | RHEL 9 호스트* |
---|---|---|---|
RHEL 6 이미지 | 지원됨 | 지원됨 | 지원되지 않음 |
RHEL/UBI 7 이미지 | 지원됨 | 지원됨 | 지원됨 |
RHEL/UBI 8 이미지 | 지원됨 | 지원됨 | 지원됨 |
RHEL/UBI 9 이미지 | 지원되지 않음 | 지원됨 | 지원됨 |
* 지정된 OpenShift 릴리스에서 사용되는 RHEL CoreOS 버전을 여기에 나열된 주요 RHEL 버전에 매핑하려면 RHCOS 및 OpenShift Container Platform 에서 사용하는 RHEL 버전 문서를 참조하십시오.
Red Hat은 다양한 주요 버전의 RHEL(위에서 설명한 대로) 간의 호환성을 지원하여 고객에게 프로덕션 환경에서 다양한 컨테이너 이미지 및 호스트를 실행할 수 있는 운영상의 유연성을 제공합니다. 이러한 조합은 많은 애플리케이션의 유용한 라이프 사이클을 연장하고 업그레이드 문제를 완화합니다.
Red Hat 지원은 지원을 제공하기 위해 "완전히 호환되는" 구성과 "워크로드별" 구성(아래에 설명됨)을 구별하도록 선택할 수 있습니다. 이에 대해 지원 담당자와 상의하십시오.
컨테이너 호환성에 대한 지침
특정 사용 사례에서 Red Hat은 RHEL 기반 컨테이너 이미지와 RHEL 컨테이너 호스트의 주요 버전을 조정하는 것이 좋습니다. Red Hat은 또한 다른 컨테이너 엔진 및 런타임이 지원되지 않기 때문에 Red Hat 컨테이너 지원 정책 따를 것을 권장합니다.
RHEL 버전 8 및 9에서 Red Hat은 지원되는 각 아키텍처(Intel/Amd x86, Arm AArch64, IBM POWER 및 zSeries)에 대한 컨테이너 이미지를 제공합니다. 일반적으로 올바른 하드웨어 아키텍처가 자동으로 감지되고 올바른 이미지가 사용됩니다. 일치하지 않는 하드웨어 아키텍처(예: x86 컨테이너 호스트에서 AArch64 컨테이너 이미지 실행)를 사용하는 것은 권장되거나 지원되지 않으며 작동하지 않을 가능성이 높습니다. 컨테이너 이미지가 제대로 실행되고 지원되려면 컨테이너 이미지와 호스트 아키텍처가 일치해야 합니다. 컨테이너 호스트의 하드웨어는 이미지를 올바르게 실행하기 위해 컨테이너 이미지에 대한 최소 하드웨어 요구 사항 도 충족해야 합니다(예: IBM POWER LE용 RHEL 9 컨테이너 이미지에는 POWER9 하드웨어가 필요함).
이전 컨테이너 호스트에서 최신 컨테이너 이미지를 실행할 때 알려진 제한 사항이 있으며 이 구성이 종종 작동하지만 이러한 구성으로 인해 추가 위험 및 호환성 문제가 발생할 수 있습니다. 고객이 이러한 제한 사항에 직면하는 경우 Red Hat은 컨테이너 호스트를 업그레이드할 것을 권장합니다.
컨테이너가 권한 (예: podman run --privileged)로 실행되거나 기본 호스트를 수정하는 경우 Red Hat은 컨테이너 이미지와 컨테이너 호스트(예: RHEL 9 호스트의 RHEL 9 이미지) 간에 메이저 버전을 정렬할 것을 권장합니다. 이 권장 사항은 컨테이너에 검사 또는 모니터링 목적으로 다른 컨테이너와 상호 작용할 수 있는 보안 권한이 부여된 경우에도 적용됩니다. 이미지와 호스트의 메이저 버전을 맞추면 최고 수준의 호환성이 보장되고 사용자가 다른 버전의 컨테이너 이미지(사용자 공간)를 컨테이너 호스트(커널)와 혼합할 때 직면하는 많은 엣지 케이스가 제거됩니다.
마지막으로 고객은 최신 컨테이너 호스트에서 매우 오래된 이미지를 실행할 때 문제에 직면할 수 있습니다(예: RHEL 9 호스트의 RHEL 6 컨테이너 이미지). 이러한 상황에서 Red Hat은 위 표에서 지원되는 버전(예: RHEL 9 호스트의 RHEL 7, RHEL 8 또는 RHEL 9 이미지)을 사용할 것을 권장합니다.
자세한 지원 조건
아래에 정의된 구성은 Red Hat Enterprise Linux 9: 애플리케이션 호환성 가이드를 대체하지 않으며 컨테이너 이미지 내에서 제공되는 Red Hat 소프트웨어에 대한 지원은 여전히 해당 지침에 의해 관리됩니다. 워크로드에 대한 보다 구체적인 정의는 아래 지침을 참조하십시오.
완전 호환(권장)
"완전 호환" 구성은 컨테이너 호스트의 메이저 버전이 컨테이너 기본 이미지의 메이저 버전과 일치하는 구성입니다(예: UBI8 기본 이미지를 기반으로 컨테이너를 실행하는 RHEL8 호스트).
컨테이너 이미지와 호스트 간의 호환성이 가장 필요한 애플리케이션의 개발 및 배포에는 "완전 호환" 구성이 권장됩니다.
"완전 호환" 구성은 컨테이너 이미지와 컨테이너 호스트가 함께 완벽하게 지원되고 테스트됨을 의미합니다. 이 구성은 모든 하위 수준 커널 하위 시스템이 일치하는 사용자 공간 및 커널 드라이버 구성 요소를 사용하도록 합니다. 권한 있는 컨테이너 실행은 지원되지만 특정 워크로드에서는 컨테이너 호스트의 마이너 버전이 컨테이너 이미지의 마이너 버전과 일치해야 할 수 있습니다.
워크로드별
"워크로드별" 구성은 컨테이너 호스트의 메이저 버전이 컨테이너 기본 이미지의 메이저 버전과 일치하지 않는 구성입니다(예: UBI7 기본 이미지를 기반으로 컨테이너를 실행하는 RHEL8 호스트).
"워크로드별"(비권한) 구성은 컨테이너 이미지와 컨테이너 호스트의 조합에 지원 제한이 있음을 의미합니다. 노출된 잠재적 문제는 Red Hat Enterprise Linux 라이프 사이클 및 지원 정책에 따라 처리됩니다.
- 사용자는 다음 조건을 모두 충족하는 경우 지원 가능한 방식으로 최신 컨테이너 호스트에서 이전 컨테이너 이미지를 실행할 수 있습니다.
- 컨테이너 이미지에 있는 Red Hat Enterprise Linux의 메이저 버전은 여전히 지원되는 RHEL 라이프 사이클에 있습니다. 예를 들어 RHEL 8이 연장된 라이프 단계에 도달하면 사용되는 기본 컨테이너 호스트 버전에 관계없이 RHEL 8 컨테이너 이미지를 지원하려면 적절한 ELS 서브스크립션이 필요합니다.
- 애플리케이션은 권한이 없는 컨테이너로 실행되고 있습니다. 예를 들어 --privileged를 전달하는 것과 같이 권한이 있는 컨테이너를 실행하면 격리가 줄어들고 컨테이너와 호스트 인터페이스 사이에 더 긴밀한 연결이 노출되며 이러한 구성에서는 지원되지 않습니다.
- 애플리케이션 또는 비 RHEL 종속 항목은 커널 버전별 데이터 구조(ioctl, /proc, /sys, routing, iptables, nftables, eBPF 등) 또는 커널 버전별 모듈(KVM, OVS, SystemTap 등)과 직접 상호 작용하지 않습니다. ioctls에 대한 지원 및 /proc에 대한 액세스는 권한이 없는 사용자가 필요로 하는 가장 일반적인 사용 사례로 제한됩니다. 다른 모든 용도에서는 구성이 "완전 호환"이어야 합니다.
컨테이너 이미지와 호스트 간의 호환성이 가장 필요한 애플리케이션의 개발 및 배포에는 "완전 호환" 구성이 권장됩니다.
- 사용자는 다음 조건**을 모두 충족하는 경우 이전 컨테이너 호스트에서 최신 컨테이너 이미지를 실행하기 위해 상업적으로 합당한 지원을 기대할 수 있습니다.
- 이전의 모든 "워크로드별" 지원 조건 적용
- 사용자는 "완전 호환" 구성으로 문제가 재현되고 근본적인 원인이 동일하다는 지원을 표시할 수 있습니다.
- 사용자는 컨테이너 이미지(애플리케이션)와 컨테이너 호스트의 호환성을 검증할 책임이 있습니다.
- 사용자는 (strace 또는 systemtap 추적을 통해) 컨테이너 이미지(애플리케이션)에 syscall만 필요하고 모든 syscall 기능(플래그, 옵션 및 경로 포함)이 기본 컨테이너 호스트 커널에 있음을 보여줍니다.
** 일반적으로 배포되는 많은 워크로드는 호스트 버전이 컨테이너 이미지 버전보다 오래된 경우 작동하지만 시작 시 또는 나중에 런타임 시 여전히 실패할 수 있습니다. 시간이 지남에 따라 최신 컨테이너 이미지의 사용자 공간 구성 요소가 제대로 작동하려면 최신 커널 기능이 필요하며 이전 커널은 이러한 요구 사항을 충족할 수 없습니다. 이 조합은 예정되지 않은 다운타임 또는 데이터 손실을 포함하되 이에 국한되지 않는 소프트웨어 버전 불일치 및 심각한 오류로 실행될 위험이 가장 큽니다. 사용자는 "완전 호환" 구성으로 마이그레이션할 준비가 되어 있어야 합니다. 애플리케이션 호환성 테스트는 Red Hat에서 수행하는 것이 아니며 분석을 지원하기 위해 상업적으로 합리적인 노력으로 제한되지만 비호환성을 해결하기 위한 버그 수정은 제공하지 않습니다.