13.14. AWS 인프라용 RHCOS AMI
Red Hat은 OpenShift Container Platform 노드에 수동으로 지정할 수 있는 다양한 AWS 리전 및 인스턴스 아키텍처에 유효한 RHCOS(Red Hat Enterprise Linux CoreOS) AMI를 제공합니다.
사용자 고유의 AMI를 가져 와서 RHCOS AMI가 게시되지 않은 리전에 설치할 수도 있습니다.
AWS 영역 | AWS AMI |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AWS 영역 | AWS AMI |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13.14.1. 게시된 RHCOS AMI가 없는 AWS 리전
Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI) 또는 AWS 소프트웨어 개발 키트 (SDK)에 대한 기본 지원없이 Amazon Web Services (AWS) 리전에 OpenShift Container Platform 클러스터를 배포할 수 있습니다. 게시된 AMI를 AWS 리전에서 사용할 수 없는 경우 클러스터를 설치하기 전에 사용자 지정 AMI를 업로드할 수 있습니다.
AWS SDK에서 지원하지 않는 리전에 배포하고 사용자 지정 AMI를 지정하지 않은 경우 설치 프로그램은 us-east-1
AMI를 사용자 계정에 자동으로 복사합니다. 그 다음 설치 프로그램은 기본 또는 사용자 지정 KMS (Key Management Service) 키를 사용하여 암호화 된 EBS 볼륨에서 컨트롤 플레인 시스템을 생성합니다. 이를 통해 AMI는 게 된 RHCOS AMI와 동일한 프로세스 워크 플로를 실행할 수 있습니다.
RHCOS AMI에 대한 기본 지원이 없는 리전은 게시되지 않기 때문에 클러스터 생성 중에 터미널에서 선택할 수 없습니다. 그러나 install-config.yaml
파일에서 사용자 지정 AMI를 구성하여 이 리전에 설치할 수 있습니다.
13.14.2. AWS에서 사용자 지정 RHCOS AMI 업로드
사용자 지정 Amazon Web Services (AWS) 리전에 배포하는 경우 해당 리전에 속하는 사용자 지정 Red Hat Enterprise Linux CoreOS (RHCOS) Amazon 머신 이미지 (AMI)를 업로드해야 합니다.
사전 요구 사항
- AWS 계정을 구성했습니다.
- 필요한 IAM 서비스 역할로 Amazon S3 버킷을 생성했습니다.
- RHCOS VMDK 파일을 Amazon S3에 업로드했습니다. RHCOS VMDK 파일은 설치하는 OpenShift Container Platform 버전과 같거나 그 이하의 버전이어야 합니다.
- AWS CLI를 다운로드하여 컴퓨터에 설치했습니다. Install the AWS CLI Using the Bundled Installer를 참조하십시오.
프로세스
AWS 프로필을 환경 변수로 내보냅니다.
$ export AWS_PROFILE=<aws_profile> 1
사용자 지정 AMI와 연결할 리전을 환경 변수로 내보냅니다.
$ export AWS_DEFAULT_REGION=<aws_region> 1
Amazon S3에 업로드한 RHCOS 버전을 환경 변수로 내보냅니다.
$ export RHCOS_VERSION=<version> 1
Amazon S3 버킷 이름을 환경 변수로 내보냅니다.
$ export VMIMPORT_BUCKET_NAME=<s3_bucket_name>
container.json
파일을 만들고 RHCOS VMDK 파일을 정의합니다.$ cat <<EOF > containers.json { "Description": "rhcos-${RHCOS_VERSION}-x86_64-aws.x86_64", "Format": "vmdk", "UserBucket": { "S3Bucket": "${VMIMPORT_BUCKET_NAME}", "S3Key": "rhcos-${RHCOS_VERSION}-x86_64-aws.x86_64.vmdk" } } EOF
RHCOS 디스크를 Amazon EBS 스냅샷으로 가져옵니다.
$ aws ec2 import-snapshot --region ${AWS_DEFAULT_REGION} \ --description "<description>" \ 1 --disk-container "file://<file_path>/containers.json" 2
이미지 가져 오기 상태를 확인합니다.
$ watch -n 5 aws ec2 describe-import-snapshot-tasks --region ${AWS_DEFAULT_REGION}
출력 예
{ "ImportSnapshotTasks": [ { "Description": "rhcos-4.7.0-x86_64-aws.x86_64", "ImportTaskId": "import-snap-fh6i8uil", "SnapshotTaskDetail": { "Description": "rhcos-4.7.0-x86_64-aws.x86_64", "DiskImageSize": 819056640.0, "Format": "VMDK", "SnapshotId": "snap-06331325870076318", "Status": "completed", "UserBucket": { "S3Bucket": "external-images", "S3Key": "rhcos-4.7.0-x86_64-aws.x86_64.vmdk" } } } ] }
SnapshotId
를 복사하여 이미지를 등록합니다.RHCOS 스냅 샷에서 사용자 지정 RHCOS AMI를 생성합니다.
$ aws ec2 register-image \ --region ${AWS_DEFAULT_REGION} \ --architecture x86_64 \ 1 --description "rhcos-${RHCOS_VERSION}-x86_64-aws.x86_64" \ 2 --ena-support \ --name "rhcos-${RHCOS_VERSION}-x86_64-aws.x86_64" \ 3 --virtualization-type hvm \ --root-device-name '/dev/xvda' \ --block-device-mappings 'DeviceName=/dev/xvda,Ebs={DeleteOnTermination=true,SnapshotId=<snapshot_ID>}' 4
이러한 API에 대한 자세한 내용은 importing snapshots 및 creating EBS-backed AMIs에서 참조하십시오.