14.7. AWS 로컬 영역에서 서브넷 생성
OpenShift Container Platform 클러스터에 대한 작업자 머신 세트를 구성하기 전에 AWS 로컬 영역에 서브넷을 생성해야 합니다.
작업자 노드를 배포할 각 로컬 영역에 대해 다음 프로세스를 반복해야 합니다.
제공된 CloudFormation 템플릿과 사용자 정의 매개변수 파일을 사용하여 서브넷을 나타내는 AWS 리소스 스택을 생성할 수 있습니다.
AWS 인프라를 생성하는 데 제공된 CloudFormation 템플릿을 사용하지 않는 경우, 제공된 정보를 검토하고 수동으로 인프라를 생성해야 합니다. 클러스터가 올바르게 초기화되지 않은 경우, Red Hat 지원팀에 설치 로그를 제시하여 문의해야 할 수도 있습니다.
사전 요구 사항
- AWS 계정을 구성했습니다.
-
aws 구성을 실행하여 AWS 키와 리전을 로컬 AWS 프로필에 추가하셨습니다. - 로컬 영역 그룹을 선택했습니다.
프로세스
템플릿에 필요한 매개변수 값이 포함된 JSON 파일을 생성합니다.
[ { "ParameterKey": "VpcId", "ParameterValue": "<value_of_VpcId>"1 }, { "ParameterKey": "PublicRouteTableId", "ParameterValue": "<value_of_PublicRouteTableId>"2 }, { "ParameterKey": "ZoneName", "ParameterValue": "<value_of_ZoneName>"3 }, { "ParameterKey": "SubnetName", "ParameterValue": "<value_of_SubnetName>" }, { "ParameterKey": "PublicSubnetCidr", "ParameterValue": "10.0.192.0/20"4 } ]- 1 1
- VPC ID를 지정합니다. 이는 CloudFormation 템플릿의 출력에서
VpcID값인 VPC ID를 지정합니다. - 2
- VPC의 CloudFormation 스택에서
PublicRouteTableId의 값인 Route Table ID를 지정합니다. - 3
- "AWS Local Zones로 최적화" 섹션에서 검색한
AvailabilityZones오브젝트의ZoneName필드 값인 AWS 로컬 영역 이름을 지정합니다. - 4
- Local Zone 서브넷을 생성하는 데 사용되는 CIDR 블록을 지정합니다. 이 블록은 VPC CIDR 블록
VpcCidr의 일부여야 합니다.
- 이 항목의 서브넷 섹션에 대한 CloudFormation 템플릿 섹션에서 템플릿을 복사하여 사용자 컴퓨터에 YAML 파일로 저장합니다. 이 템플릿은 클러스터에 필요한 VPC를 설명합니다.
CloudFormation 템플릿을 시작하여 다음 명령을 실행하여 VPC를 나타내는 AWS 리소스 스택을 생성합니다.
중요명령은 한 줄로 입력해야 합니다.
$ aws cloudformation create-stack --stack-name <subnet_stack_name> \1 --template-body file://<template>.yaml \2 --parameters file://<parameters>.json3 출력 예
arn:aws:cloudformation:us-east-1:123456789012:stack/<subnet_stack_name>/dbedae40-2fd3-11eb-820e-12a48460849f다음 명령을 실행하여 템플릿 구성 요소가 있는지 확인합니다.
$ aws cloudformation describe-stacks --stack-name <subnet_stack_name>StackStatus에CREATE_COMPLETE이 표시된 후 다음 매개변수의 출력 값이 표시됩니다. 클러스터를 생성하기 위해 실행하는 다른 CloudFormation 템플릿에 이러한 매개변수 값을 제공해야 합니다.PublicSubnetIds새 퍼블릭 서브넷의 ID입니다.
14.7.1. AWS 로컬 영역을 사용하는 서브넷의 CloudFormation 템플릿 링크 복사링크가 클립보드에 복사되었습니다!
다음 CloudFormation 템플릿을 사용하여 AWS Local Zones를 사용하는 OpenShift Container Platform 클러스터에 필요한 서브넷을 배포할 수 있습니다.
예 14.2. 서브넷용 CloudFormation 템플릿
# CloudFormation template used to create Local Zone subnets and dependencies
AWSTemplateFormatVersion: 2010-09-09
Description: Template for create Public Local Zone subnets
Parameters:
VpcId:
Description: VPC Id
Type: String
ZoneName:
Description: Local Zone Name (Example us-east-1-nyc-1a)
Type: String
SubnetName:
Description: Local Zone Name (Example cluster-public-us-east-1-nyc-1a)
Type: String
PublicRouteTableId:
Description: Public Route Table ID to associate the Local Zone subnet
Type: String
PublicSubnetCidr:
AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-4]))$
ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-24.
Default: 10.0.128.0/20
Description: CIDR block for Public Subnet
Type: String
Resources:
PublicSubnet:
Type: "AWS::EC2::Subnet"
Properties:
VpcId: !Ref VpcId
CidrBlock: !Ref PublicSubnetCidr
AvailabilityZone: !Ref ZoneName
Tags:
- Key: Name
Value: !Ref SubnetName
- Key: kubernetes.io/cluster/unmanaged
Value: "true"
PublicSubnetRouteTableAssociation:
Type: "AWS::EC2::SubnetRouteTableAssociation"
Properties:
SubnetId: !Ref PublicSubnet
RouteTableId: !Ref PublicRouteTableId
Outputs:
PublicSubnetIds:
Description: Subnet IDs of the public subnets.
Value:
!Join ["", [!Ref PublicSubnet]]