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>.json3 출력 예
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]
]