14.7. AWS 로컬 영역에서 서브넷 생성
OpenShift Container Platform 클러스터에 대한 작업자 머신 세트를 구성하기 전에 AWS 로컬 영역에 서브넷을 생성해야 합니다.
작업자 노드를 배포할 각 로컬 영역에 대해 다음 프로세스를 반복해야 합니다.
제공된 CloudFormation 템플릿과 사용자 정의 매개변수 파일을 사용하여 서브넷을 나타내는 AWS 리소스 스택을 생성할 수 있습니다.
AWS 인프라를 생성하는 데 제공된 CloudFormation 템플릿을 사용하지 않는 경우, 제공된 정보를 검토하고 수동으로 인프라를 생성해야 합니다. 클러스터가 올바르게 초기화되지 않은 경우, Red Hat 지원팀에 설치 로그를 제시하여 문의해야 할 수도 있습니다.
사전 요구 사항
- AWS 계정을 구성했습니다.
-
aws 구성
을 실행하여 AWS 키와 리전을 로컬 AWS 프로필에 추가하셨습니다. - 로컬 영역 그룹을 선택했습니다.
프로세스
템플릿에 필요한 매개변수 값이 포함된 JSON 파일을 생성합니다.
[ { "ParameterKey": "ClusterName", 1 "ParameterValue": "mycluster" 2 }, { "ParameterKey": "VpcId", 3 "ParameterValue": "vpc-<random_string>" 4 }, { "ParameterKey": "PublicRouteTableId", 5 "ParameterValue": "<vpc_rtb_pub>" 6 }, { "ParameterKey": "LocalZoneName", 7 "ParameterValue": "<cluster_region_name>-<location_identifier>-<zone_identifier>" 8 }, { "ParameterKey": "LocalZoneNameShort", 9 "ParameterValue": "<lz_zone_shortname>" 10 }, { "ParameterKey": "PublicSubnetCidr", 11 "ParameterValue": "10.0.128.0/20" 12 } ]
- 1
- 호스트 이름에 사용할 짧은 대표 클러스터 이름입니다.
- 2
- 클러스터의
install-config.yaml
파일을 생성할 때 사용한 클러스터 이름을 지정합니다. - 3
- 로컬 영역의 서브넷이 생성될 VPC ID입니다.
- 4
- VPC에 대한 CloudFormation 템플릿의 출력에서
VpcId
값을 지정합니다. - 5
- VPC의 공개 경로 테이블 ID입니다.
- 6
- VPC에 대한 CloudFormation 템플릿의 출력에서
PublicRouteTableId
값을 지정합니다. - 7
- VPC가 속한 로컬 영역 이름입니다.
- 8
- AWS 계정을 선택한 로컬 영역(예:
us-east-1-nyc-1a
)을 지정합니다. - 9
- VPC가 속한 AWS 로컬 영역의 짧은 이름입니다.
- 10
- AWS 계정을 선택한 AWS 로컬 영역의 짧은 이름을 지정합니다(예: <
zone_group_identified><zone_identifier
>). 예를 들어us-east-1-nyc-1a
는nyc-1a
로 단축됩니다. - 11
- 로컬 영역에 대한 액세스를 허용하는 CIDR 블록입니다.
- 12
xxxx/16-24
형식으로 CIDR 블록을 지정합니다.
- 이 항목의 서브넷 섹션에 대한 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>.json 3
출력 예
arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-lz-nyc1/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 Best Practice VPC with 1-3 AZs Parameters: ClusterName: Description: ClusterName used to prefix resource names Type: String VpcId: Description: VPC Id Type: String LocalZoneName: Description: Local Zone Name (Example us-east-1-bos-1) Type: String LocalZoneNameShort: Description: Short name for Local Zone used on tag Name (Example bos1) 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 LocalZoneName Tags: - Key: Name Value: !Join - "" - [ !Ref ClusterName, "-public-", !Ref LocalZoneNameShort, "-1" ] - 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] ]
추가 리소스
- AWS CloudFormation 콘솔로 이동하여 생성하는 CloudFormation 스택에 대한 세부 정보를 볼 수 있습니다.