14.7. AWS 로컬 영역에서 서브넷 생성


OpenShift Container Platform 클러스터에 대한 작업자 머신 세트를 구성하기 전에 AWS 로컬 영역에 서브넷을 생성해야 합니다.

작업자 노드를 배포할 각 로컬 영역에 대해 다음 프로세스를 반복해야 합니다.

제공된 CloudFormation 템플릿과 사용자 정의 매개변수 파일을 사용하여 서브넷을 나타내는 AWS 리소스 스택을 생성할 수 있습니다.

참고

AWS 인프라를 생성하는 데 제공된 CloudFormation 템플릿을 사용하지 않는 경우, 제공된 정보를 검토하고 수동으로 인프라를 생성해야 합니다. 클러스터가 올바르게 초기화되지 않은 경우, Red Hat 지원팀에 설치 로그를 제시하여 문의해야 할 수도 있습니다.

사전 요구 사항

  • AWS 계정을 구성했습니다.
  • aws 구성을 실행하여 AWS 키와 리전을 로컬 AWS 프로필에 추가하셨습니다.
  • 로컬 영역 그룹을 선택했습니다.

프로세스

  1. 템플릿에 필요한 매개변수 값이 포함된 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-1anyc-1a 로 단축됩니다.
    11
    로컬 영역에 대한 액세스를 허용하는 CIDR 블록입니다.
    12
    xxxx/16-24 형식으로 CIDR 블록을 지정합니다.
  2. 항목의 서브넷 섹션에 대한 CloudFormation 템플릿 섹션에서 템플릿을 복사하여 사용자 컴퓨터에 YAML 파일로 저장합니다. 이 템플릿은 클러스터에 필요한 VPC를 설명합니다.
  3. CloudFormation 템플릿을 시작하여 다음 명령을 실행하여 VPC를 나타내는 AWS 리소스 스택을 생성합니다.

    중요

    명령은 한 줄로 입력해야 합니다.

    $ aws cloudformation create-stack --stack-name <subnet_stack_name> \ 1
         --template-body file://<template>.yaml \ 2
         --parameters file://<parameters>.json 3
    1
    < subnet_stack_name >은 CloudFormation 스택의 이름입니다(예: cluster-lz-<local_zone_shortname >). 클러스터를 제거하는 경우 이 스택의 이름이 필요합니다.
    2
    <template>은 저장한 CloudFormation 템플릿 YAML 파일의 상대 경로 및 이름입니다.
    3
    <parameters>는 CloudFormation 매개변수 JSON 파일의 상대 경로 및 이름입니다.

    출력 예

    arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-lz-nyc1/dbedae40-2fd3-11eb-820e-12a48460849f

  4. 다음 명령을 실행하여 템플릿 구성 요소가 있는지 확인합니다.

    $ aws cloudformation describe-stacks --stack-name <subnet_stack_name>

    StackStatusCREATE_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 스택에 대한 세부 정보를 볼 수 있습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.