1장. OpenShift 샌드박스 컨테이너 이해
Red Hat OpenShift Container Platform의 OpenShift 샌드박스 컨테이너 지원은 추가 선택적 런타임으로 Kata Containers를 실행하기 위한 기본 지원을 제공합니다. 새로운 런타임은 전용 VM(가상 머신)의 컨테이너를 지원하여 향상된 워크로드 격리를 제공합니다. 이는 다음 작업을 수행하는 데 특히 유용합니다.
- 권한이 있거나 신뢰할 수 없는 워크로드 실행
OpenShift 샌드박스 컨테이너(OSC)를 사용하면 권한 있는 컨테이너를 실행하여 클러스터 노드를 손상시킬 위험이 없이 특정 권한이 필요한 워크로드를 안전하게 실행할 수 있습니다. 특수 권한이 필요한 워크로드에는 다음이 포함됩니다.
- 커널의 특수 기능이 필요한 워크로드는 CRI-O와 같은 표준 컨테이너 런타임에서 부여하는 기본 기능 이상으로, 예를 들어 낮은 수준의 네트워킹 기능에 액세스합니다.
- 예를 들어 특정 물리적 장치에 액세스하기 위해 높은 루트 권한이 필요한 워크로드입니다. OpenShift 샌드박스 컨테이너를 사용하면 특정 장치만 VM에 전달하여 워크로드가 나머지 시스템에 액세스하거나 잘못 구성할 수 없도록 할 수 있습니다.
-
set-uid
루트 바이너리를 설치하거나 사용하는 워크로드입니다. 이러한 바이너리는 특수 권한을 부여하므로 보안 위험이 발생할 수 있습니다. OpenShift 샌드박스 컨테이너를 사용하면 추가 권한이 가상 머신으로 제한되며 클러스터 노드에 대한 특별한 액세스 권한이 부여되지 않습니다.
일부 워크로드에서는 클러스터 노드를 구성하기 위해 특별히 권한이 필요할 수 있습니다. 가상 머신에서 실행하면 이러한 워크로드가 작동하지 않기 때문에 권한 있는 컨테이너를 계속 사용해야 합니다.
- 각 워크로드에 대한 커널 격리 확인
-
OpenShift 샌드박스 컨테이너는 사용자 정의 커널 튜닝(예:
sysctl
, 스케줄러 변경 또는 캐시 튜닝)이 필요한 워크로드와 사용자 지정 커널 모듈 생성(예:트리 외부
또는 특수 인수)을 지원합니다. - 테넌트 간에 동일한 워크로드를 공유
-
OpenShift 샌드박스 컨테이너를 사용하면 동일한 OpenShift 클러스터를 공유하는 다양한 조직의 여러 사용자(테넌트)를 지원할 수 있습니다. 또한 이 시스템을 사용하면 컨테이너 네트워크 기능(CNF) 및 엔터프라이즈 애플리케이션과 같은 여러 벤더의 타사 워크로드를 실행할 수 있습니다. 예를 들어 타사 CNF는 사용자 지정 설정이 패킷 튜닝 또는 다른 애플리케이션에서 설정한
sysctl
변수를 방해하는 것을 원하지 않을 수 있습니다. 완전히 격리된 커널 내에서 실행하면 "noisy neighbor" 구성 문제를 방지하는 데 도움이 됩니다. - 소프트웨어 테스트를 위한 적절한 격리 및 샌드박스 확인
-
OpenShift 샌드박스 컨테이너를 사용하여 알려진 취약점으로 컨테이너화된 워크로드를 실행하거나 레거시 애플리케이션의 문제를 처리할 수 있습니다. 또한 관리자는 이 격리를 통해 개발자에게 pod에 대한 관리 권한을 부여할 수 있습니다. 이 제어는 개발자가 일반적으로 부여한 것 이외의 구성을 테스트하거나 검증하려고 할 때 유용합니다. 예를 들어 관리자는 커널 패킷 필터링(eBPF)을 개발자에게 안전하고 안전하게 위임할 수 있습니다. 커널 패킷 필터링에는
CAP_ADMIN
또는CAP_BPF
권한이 필요하므로 표준 CRI-O 구성에서 허용되지 않습니다. 이는 컨테이너 호스트 작업자 노드의 모든 프로세스에 대한 액세스 권한을 부여하기 때문입니다. 마찬가지로 관리자는 SystemTap과 같은 침입 툴에 대한 액세스 권한을 부여하거나 개발 중에 사용자 지정 커널 모듈 로드를 지원할 수 있습니다. - VM 경계를 통한 기본 리소스 포함 확인
- 기본적으로 CPU, 메모리, 스토리지 또는 네트워킹과 같은 리소스는 OpenShift 샌드박스 컨테이너에서 보다 강력하고 안전한 방식으로 관리됩니다. OpenShift 샌드박스 컨테이너는 VM에 배포되므로 추가 격리 및 보안 계층을 통해 리소스에 대한 보다 세분화된 액세스 제어가 가능합니다. 예를 들어, 잘못된 컨테이너는 VM에서 사용할 수 있는 것보다 더 많은 메모리를 할당할 수 없습니다. 반대로 네트워크 카드 또는 디스크에 대한 전용 액세스 권한이 필요한 컨테이너는 다른 장치에 액세스하지 않고도 해당 장치를 완전히 제어할 수 있습니다.
1.1. OpenShift 샌드박스 컨테이너 지원 플랫폼
베어 메탈 서버 또는 AWS(Amazon Web Services) 베어 메탈 인스턴스에 OpenShift 샌드박스 컨테이너를 설치할 수 있습니다. 다른 클라우드 공급자가 제공하는 베어 메탈 인스턴스는 지원되지 않습니다.
RHCOS(Red Hat Enterprise Linux CoreOS)는 OpenShift 샌드박스 컨테이너에서 지원되는 유일한 운영 체제입니다.
OpenShift 샌드박스 컨테이너 1.5는 지원되는 모든 Red Hat OpenShift Container Platform 버전과 호환됩니다. 자세한 내용은 OpenShift Operator 라이프 사이클 을 참조하십시오.