5.7. bootc-image-builder를 사용하여 AMI 이미지 생성 및 AWS에 업로드
bootc-image-builder 툴을 사용하여 Red Hat Enterprise Linux bootc 이미지에서 AMI(Amazon Machine Image)를 생성합니다. 이를 통해 AWS(Amazon Web Services) 내에서 컨테이너 네이티브 운영 체제를 표준 EC2 인스턴스로 배포할 수 있습니다.
-
registry.redhat.io/rhel10/bootc-image-builder:latest와 같은 레지스트리의 컨테이너 이미지를 사용하는 경우 로컬 스토리지를 마운트해야 합니다. -
로컬로 빌드된 컨테이너 이미지를 사용하는 경우
-v /var/lib/containers/storage:/var/lib/containers/storage인수를 포함해야 합니다.
사전 요구 사항
- 호스트 시스템에 Podman이 설치되어 있어야 합니다.
-
AWS 계정 내에 기존
AWS S3버킷이 있습니다. -
bootc-image-builder툴을 실행하고--privileged모드에서 컨테이너를 실행하여 이미지를 빌드할 수 있는 루트 액세스 권한이 있습니다. -
AMI를 AWS 계정으로 가져오도록 계정에
vmimport서비스 역할이 구성되어 있습니다.
프로세스
bootc 이미지에서 디스크 이미지를 만듭니다.
- Containerfile에서 사용자 세부 정보를 구성합니다. sudo 액세스 권한으로 할당했는지 확인합니다.
- Containerfile에서 구성된 사용자로 사용자 지정 운영 체제 이미지를 빌드합니다. 암호 sudo 액세스없이 기본 사용자를 생성합니다.
선택 사항:
cloud-init를 사용하여 머신 이미지를 구성합니다. RHEL의 이미지 모드에서 파일 시스템 관리를 참조하십시오. 다음은 예제입니다.FROM quay.io/<namespace>/<image>:latest RUN dnf -y install cloud-init && \ ln -s ../cloud-init.target /usr/lib/systemd/system/default.target.wants && \ rm -rf /var/{cache,log} /var/lib/{dnf,rhsm}참고cloud-init를 사용하여 인스턴스 메타데이터를 사용하여 사용자 및 추가 구성을 추가할 수도 있습니다.bootc 이미지를 빌드합니다. 예를 들어 이미지를
x86_64AWS 머신에 배포하려면 다음 명령을 사용합니다.$ podman build -t quay.io/<namespace>/<image>:<tag> . $ podman push quay.io/<namespace>/<image>:<tag> .컨테이너를 실행하기 전에
출력디렉터리를 초기화합니다. 디렉터리가 이미 존재하는 경우-p인수를 사용하여 명령이 실패하지 않도록 합니다.$ mkdir -p ./outputbootc-image-builder툴을 사용하여 bootc 컨테이너 이미지에서 공용 AMI 이미지를 생성합니다.registry.redhat.io/rhel10/bootc-image-builder:latest와 같은 레지스트리에서 이미지에 액세스할 수 있어야 합니다.$ sudo podman run \ --rm \ --it \ --privileged \ --pull=newer \ -v ./config.toml:/config.toml \ -v /var/home/<user>/.aws:/root/.aws \ --env AWS_PROFILE=default \ registry.redhat.io/rhel10/bootc-image-builder:latest \ --type ami \ --config /config.toml \ --aws-ami-name rhel-bootc-x86 \ --aws-bucket rhel-bootc-bucket \ --aws-region us-east-1 \ quay.io/<namespace>/<image>:<tag>다음 플래그를 함께 지정해야 합니다. 플래그를 지정하지 않으면 AMI가 출력 디렉터리로 내보냅니다.
-
--AWS-ami-name- AWS의 AMI 이미지 이름입니다. -
--AWS-bucket- AMI를 생성할 때 중간 스토리지의 대상 S3 버킷 이름 --AWS-region- AWS 업로드의 대상 리전bootc-image-builder툴은 AWS 인증 정보를 사용하여 AMI 이미지를 빌드, 업로드 및 AWS S3 버킷에 등록합니다.
-
다음 단계
- 이미지를 배포할 수 있습니다. AMI 디스크 이미지를 사용하여 AWS에 컨테이너 이미지 배포를 참조하십시오.
- 이미지를 업데이트하고 변경 사항을 레지스트리로 푸시할 수 있습니다. RHEL bootc 이미지 관리를 참조하십시오.
문제 해결
AWS 이미지에 대한 요구 사항을 구성하는 데 문제가 있는 경우 다음 문서를 참조하십시오.
추가 리소스