4.10.5.2. GCP에서 VPC 생성


OpenShift Container Platform 클러스터에서 사용할 VPC를 GCP(Google Cloud Platform)에 생성해야 합니다. 요구사항에 맞춰 VPC를 사용자 지정할 수 있습니다. VPC를 생성하는 한 가지 방법은 제공된 Deployment Manager 템플릿을 수정하는 것입니다.

참고

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

사전 요구 사항

  • GCP 계정을 구성하십시오.

프로세스

  1. 이 항목의 VPC에 대한 Deployment Manager 템플릿 섹션에서 템플릿을 복사하여 사용자 컴퓨터에 01_vpc.py로 저장합니다. 이 템플릿은 클러스터에 필요한 VPC를 설명합니다.
  2. 리소스 정의에 필요한 다음 변수들을 내보냅니다.

    1. 컨트롤 플레인 CIDR을 내보냅니다.

      $ export MASTER_SUBNET_CIDR='10.0.0.0/19'
      Copy to Clipboard Toggle word wrap
    2. 컴퓨팅 CIDR을 내보냅니다.

      $ export WORKER_SUBNET_CIDR='10.0.32.0/19'
      Copy to Clipboard Toggle word wrap
    3. VPC 네트워크와 클러스터를 배포할 리전을 내보냅니다.

      $ export REGION='<region>'
      Copy to Clipboard Toggle word wrap
  3. 공유 VPC를 호스팅하는 프로젝트의 ID에 해당하는 변수를 내보냅니다.

    $ export HOST_PROJECT=<host_project>
    Copy to Clipboard Toggle word wrap
  4. 호스트 프로젝트에 속하는 서비스 계정의 이메일에 해당하는 변수를 내보냅니다.

    $ export HOST_PROJECT_ACCOUNT=<host_service_account_email>
    Copy to Clipboard Toggle word wrap
  5. 01_vpc.yaml 리소스 정의 파일을 생성합니다.

    $ cat <<EOF >01_vpc.yaml
    imports:
    - path: 01_vpc.py
    
    resources:
    - name: cluster-vpc
      type: 01_vpc.py
      properties:
        infra_id: '<prefix>' 
    1
    
        region: '${REGION}' 
    2
    
        master_subnet_cidr: '${MASTER_SUBNET_CIDR}' 
    3
    
        worker_subnet_cidr: '${WORKER_SUBNET_CIDR}' 
    4
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    infra_id는 네트워크 이름의 접두사입니다.
    2
    region은 클러스터를 배포할 영역입니다(예: us-central1).
    3
    master_subnet_cidr은 마스터 서브넷의 CIDR입니다(예: 10.0.0.0/19).
    4
    worker_subnet_cidr은 작업자 서브넷의 CIDR입니다(예: 10.0.32.0/19).
  6. gcloud CLI를 사용하여 배포를 생성합니다.

    $ gcloud deployment-manager deployments create <vpc_deployment_name> --config 01_vpc.yaml --project ${HOST_PROJECT} --account ${HOST_PROJECT_ACCOUNT} 
    1
    Copy to Clipboard Toggle word wrap
    1
    <vpc_deployment_name> 값으로 배포할 VPC의 이름을 지정합니다.
  7. 다른 구성 요소에 필요한 VPC 변수들을 내보냅니다.

    1. 호스트 프로젝트 네트워크의 이름을 내보냅니다.

      $ export HOST_PROJECT_NETWORK=<vpc_network>
      Copy to Clipboard Toggle word wrap
    2. 호스트 프로젝트 컨트롤 플레인의 이름을 내보냅니다.

      $ export HOST_PROJECT_CONTROL_SUBNET=<control_plane_subnet>
      Copy to Clipboard Toggle word wrap
    3. 호스트 프로젝트 컴퓨팅 서브넷의 이름을 내보냅니다.

      $ export HOST_PROJECT_COMPUTE_SUBNET=<compute_subnet>
      Copy to Clipboard Toggle word wrap
  8. 공유 VPC를 설정합니다. GCP 문서의 공유 VPC 설정 단원을 참조하십시오.
4.10.5.2.1. VPC용 Deployment Manager 템플릿

다음 Deployment Manager 템플릿을 사용하여 OpenShift Container Platform 클러스터에 필요한 VPC를 배포할 수 있습니다.

예 4.10. 01_vpc.py Deployment Manager 템플릿

def GenerateConfig(context):

    resources = [{
        'name': context.properties['infra_id'] + '-network',
        'type': 'compute.v1.network',
        'properties': {
            'region': context.properties['region'],
            'autoCreateSubnetworks': False
        }
    }, {
        'name': context.properties['infra_id'] + '-master-subnet',
        'type': 'compute.v1.subnetwork',
        'properties': {
            'region': context.properties['region'],
            'network': '$(ref.' + context.properties['infra_id'] + '-network.selfLink)',
            'ipCidrRange': context.properties['master_subnet_cidr']
        }
    }, {
        'name': context.properties['infra_id'] + '-worker-subnet',
        'type': 'compute.v1.subnetwork',
        'properties': {
            'region': context.properties['region'],
            'network': '$(ref.' + context.properties['infra_id'] + '-network.selfLink)',
            'ipCidrRange': context.properties['worker_subnet_cidr']
        }
    }, {
        'name': context.properties['infra_id'] + '-router',
        'type': 'compute.v1.router',
        'properties': {
            'region': context.properties['region'],
            'network': '$(ref.' + context.properties['infra_id'] + '-network.selfLink)',
            'nats': [{
                'name': context.properties['infra_id'] + '-nat-master',
                'natIpAllocateOption': 'AUTO_ONLY',
                'minPortsPerVm': 7168,
                'sourceSubnetworkIpRangesToNat': 'LIST_OF_SUBNETWORKS',
                'subnetworks': [{
                    'name': '$(ref.' + context.properties['infra_id'] + '-master-subnet.selfLink)',
                    'sourceIpRangesToNat': ['ALL_IP_RANGES']
                }]
            }, {
                'name': context.properties['infra_id'] + '-nat-worker',
                'natIpAllocateOption': 'AUTO_ONLY',
                'minPortsPerVm': 512,
                'sourceSubnetworkIpRangesToNat': 'LIST_OF_SUBNETWORKS',
                'subnetworks': [{
                    'name': '$(ref.' + context.properties['infra_id'] + '-worker-subnet.selfLink)',
                    'sourceIpRangesToNat': ['ALL_IP_RANGES']
                }]
            }]
        }
    }]

    return {'resources': resources}
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat