1장. RHEL의 이미지 모드 소개
RHEL의 이미지 모드를 사용하여 애플리케이션 컨테이너와 동일한 툴 및 기술을 사용하여 운영 체제를 빌드, 테스트 및 배포합니다. RHEL의 이미지 모드는 registry.redhat.io/rhel10/rhel-bootc bootc 이미지를 사용하여 사용할 수 있습니다. RHEL 부팅c 이미지는 기존 애플리케이션 UBI(Universal Base Images)와 다릅니다(예: kernel, initrd, 부트 로더, 펌웨어 등 일반적으로 제외된 추가 구성 요소가 포함되어 있다는 점에서).
rhel-bootc 및 rhel-bootc 컨테이너 이미지를 기반으로 하는 사용자 생성 컨테이너는 Red Hat Enterprise Linux EULA(최종 사용자 라이센스 계약) 의 적용을 받습니다. 이러한 이미지를 공개적으로 재배포할 수 없습니다.
그림 1.1. RHEL용 이미지 모드를 사용하여 운영 체제 빌드, 배포 및 관리
Red Hat은 다음 컴퓨터 아키텍처에 대한 bootc 이미지를 제공합니다.
- AMD 및 Intel 64비트 아키텍처 (x86-64-v2)
- 64비트 ARM 아키텍처 (ARMv8.0-A)
- IBM Power Systems 64비트 Little Endian 아키텍처(ppc64le)
- IBM Z 64비트 아키텍처(s390x)
Anaconda는 s390x 및 ppc64le 아키텍처에서 올바르게 작동하지 않을 수 있습니다. 자세한 내용은 릴리스 정보를 참조하십시오.
RHEL의 이미지 모드의 이점은 시스템의 라이프사이클 전반에 걸쳐 발생합니다. 다음 목록에는 가장 중요한 이점 중 일부가 포함되어 있습니다.
- 컨테이너 이미지는 다른 이미지 형식보다 쉽게 이해하고 사용할 수 있으며 빌드가 빠릅니다.
- Dockerfile이라고도 하는 Containerfiles는 간단한 접근 방식을 제공하여 이미지 콘텐츠 정의 및 빌드 지침을 제공합니다. 컨테이너 이미지는 다른 이미지 생성 툴에 비해 빌드 및 반복하는 속도가 훨씬 빠릅니다.
- 프로세스, 인프라 및 릴리스 아티팩트 통합
- 애플리케이션을 컨테이너로 배포할 때 동일한 인프라 및 프로세스를 사용하여 기본 운영 체제를 관리할 수 있습니다.
- 변경할 수 없는 업데이트
-
RHEL의 이미지 모드를 사용하여 컨테이너화된 애플리케이션이 변경 불가능한 방식으로 업데이트되는 것처럼 운영 체제도 마찬가지입니다.
rpm-ostree시스템을 사용하는 것과 동일한 방식으로 업데이트를 부팅하고 필요한 경우 롤백할 수 있습니다. - 하이브리드 클라우드 환경 간 이식성
- 물리적, 가상화, 클라우드 및 에지 환경에서 bootc 이미지를 사용할 수 있습니다.
컨테이너가 이미지를 빌드, 전송 및 실행하는 기반을 제공하지만 설치 메커니즘을 사용하여 이러한 부팅 이미지를 배포한 후 디스크 이미지로 변환하면 시스템이 컨테이너로 실행되지 않음을 이해하는 것이 중요합니다.
- Bootc는 다음 컨테이너 이미지 형식 및 디스크 이미지 형식을 지원합니다.
| 이미지 유형 | 대상 환경 |
|---|---|
|
| 물리적, 가상화, 클라우드 및 에지 환경. |
|
| Amazon 시스템 이미지. |
|
| QEMU(Red Hat OpenStack, OpenShift용 Red Hat OpenStack 서비스, OpenShift Virtualization), Libvirt(RHEL)와 같은 환경의 대상입니다. |
|
| vSphere용 VMDK. |
|
| 발견된 첫 번째 디스크에 설치하는 무인 Anaconda 설치 프로그램입니다. |
|
| 포맷되지 않은 원시 디스크. QEMU 및 Libvirt에서도 지원 |
|
| 특히 가상 PC용 VHD입니다. |
|
| Google Compute Engine(GCE) 환경. |
컨테이너는 다음과 같은 가능성을 제공하여 RHEL 시스템의 라이프사이클을 간소화할 수 있도록 지원합니다.
- 컨테이너 이미지 빌드
-
Containerfile을 수정하여 빌드 시 운영 체제를 구성할 수 있습니다. RHEL의 이미지 모드는
registry.redhat.io/rhel10/rhel-bootc컨테이너 이미지를 사용하여 사용할 수 있습니다. Podman, OpenShift Container Platform 또는 기타 표준 컨테이너 빌드 툴을 사용하여 컨테이너 및 컨테이너 이미지를 관리할 수 있습니다. CI/CD 파이프라인을 사용하여 빌드 프로세스를 자동화할 수 있습니다. - 컨테이너 이미지 버전, 미러링 및 테스트
- Podman 또는 OpenShift Container Platform과 같은 컨테이너 툴을 사용하여 파생된 bootc 이미지를 버전, 미러링, 인트로스펙션 및 서명할 수 있습니다.
- 대상 환경에 컨테이너 이미지 배포
이미지를 배포하는 방법에 대한 몇 가지 옵션이 있습니다.
- Anaconda:는 RHEL에서 사용하는 설치 프로그램입니다. Anaconda 및 Kickstart를 사용하여 설치 프로세스를 자동화하여 모든 이미지 유형을 대상 환경에 배포할 수 있습니다.
-
bootc-image-builder: 컨테이너 이미지를 다른 유형의 디스크 이미지로 변환하고 선택적으로 이미지 레지스트리 또는 오브젝트 스토리지에 업로드하는 컨테이너 도구입니다. -
bootc: 컨테이너 레지스트리에서 컨테이너 이미지를 가져와서 시스템에 설치하거나, 운영 체제를 업데이트하거나, 기존 ostree 기반 시스템에서 전환하는 툴입니다. RHEL bootc 이미지에는 기본적으로bootc유틸리티가 포함되어 있으며 모든 이미지 유형과 함께 작동합니다.rpm-ostree를 대체하기 위한 것입니다.
- 운영 체제 업데이트
-
시스템은 배포 후 롤백을 통해 인플레이스 트랜잭션 업데이트를 지원합니다. 자동 업데이트는 기본적으로 설정되어 있습니다. systemd 서비스 장치 및 systemd 타이머 장치 파일은 컨테이너 레지스트리에서 업데이트를 확인하고 시스템에 적용합니다. 업데이트는 트랜잭션이므로 재부팅해야 합니다. 더 정교하거나 예약된 롤아웃이 필요한 환경의 경우 자동 업데이트를 비활성화하고
bootc유틸리티를 사용하여 운영 체제를 업데이트합니다.
RHEL에는 두 가지 배포 모드가 있습니다. 둘 다 배포 중에 동일한 안정성, 안정성 및 성능을 제공합니다. 해당 차이점을 참조하십시오.
-
패키지 모드: 운영 체제는 RPM 패키지를 사용하며
dnf패키지 관리자를 사용하여 업데이트됩니다. 루트 파일 시스템은 변경할 수 있습니다. 그러나 운영 체제는 컨테이너화된 애플리케이션으로 관리할 수 없습니다. -
이미지 모드: RHEL을 빌드, 배포 및 관리하기 위한 컨테이너 네이티브 접근 방식입니다. 동일한 RPM 패키지가 기본 이미지로 제공되며 업데이트는 컨테이너 이미지로 배포됩니다. 루트 파일 시스템은
/etc및/var을 제외하고 기본적으로 변경할 수 없으며 컨테이너 이미지에서 대부분의 콘텐츠가 제공됩니다.
운영 체제를 빌드, 테스트 및 공유하기 위해 이미지 모드 또는 패키지 모드 배포를 사용하도록 선택할 수 있습니다. 이미지 모드를 사용하면 다른 컨테이너화된 애플리케이션과 동일한 방식으로 운영 체제를 관리할 수 있습니다.
1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 서브스크립션된 RHEL 10 시스템이 있습니다. 자세한 내용은 RHEL 시스템 등록 시작하기 설명서를 참조하십시오.
- 컨테이너 레지스트리가 있습니다. 로컬로 레지스트리를 생성하거나 Quay.io 서비스에 무료 계정을 생성할 수 있습니다. Quay.io 계정을 생성하려면 Red Hat Quay.io 페이지를 참조하십시오.
- 프로덕션 또는 개발자 서브스크립션이 있는 Red Hat 계정이 있습니다. Red Hat Enterprise Linux 개요 페이지에서 무료로 개발자 서브스크립션을 사용할 수 없습니다.
- registry.redhat.io에 인증되었습니다. 자세한 내용은 Red Hat Container Registry Authentication 문서를 참조하십시오.