VPC 네트워크 구성

Google Cloud Managed Lustre는 Compute Engine 가상 머신 (VM) 인스턴스, Google Kubernetes Engine (GKE) 클러스터, 서버리스 워크로드에 네트워킹 기능을 제공하는 Virtual Private Cloud (VPC) 내에서 실행됩니다.

Managed Lustre 인스턴스와 클라이언트 Compute Engine VM 또는 Google Kubernetes Engine 클러스터를 만들 때 동일한 VPC 네트워크를 지정해야 합니다.

필수 권한

다음 IAM 권한을 가지고 있어야 합니다.

  • serviceusage.services.enable
  • compute.networks.create
  • compute.addresses.create
  • compute.addresses.get
  • compute.firewalls.create
  • servicenetworking.services.addPeering

이러한 권한은 다음 사전 정의된 역할을 모두 추가하여 부여할 수 있습니다.

또는 특정 권한이 포함된 커스텀 역할을 만듭니다.

사용자에게 역할을 부여하려면 다음을 실행합니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:EMAIL_ADDRESS"
  --role=ROLE

VPC 만들기 및 구성

  1. 서비스 네트워킹을 사용 설정합니다.

    gcloud services enable servicenetworking.googleapis.com
    
  2. 커스텀 모드에서 VPC 네트워크를 만듭니다.

    gcloud compute networks create NETWORK_NAME \
      --subnet-mode=custom \
      --mtu=8896
    
  3. GKE 또는 Compute Engine 리소스의 기본 서브넷을 만듭니다.

    gcloud compute networks subnets create SUBNET_NAME \
      --network=NETWORK_NAME \
      --range=10.128.0.0/20 \
      --region=REGION
    
  4. 비공개 서비스 액세스의 IP 범위를 할당합니다.

    이 내부 IP 범위는 Managed Lustre 리소스가 프로비저닝되는 Google 관리 네트워크와 VPC 네트워크를 피어링하는 비공개 서비스 액세스 연결에 사용됩니다. 이 할당된 범위는 Managed Lustre 인스턴스의 IP를 제공하는 데 사용되며 VPC 네트워크의 서브넷과 겹치지 않아야 합니다.

    각 Managed Lustre 인스턴스에는 프리픽스 길이가 23 이상인 연속 CIDR 블록이 필요합니다.

    여러 Managed Lustre 인스턴스를 만들거나 기타 서비스를 사용할 수 있도록 더 큰 IP 범위(/20)를 만드는 것이 좋습니다. Google Cloud

    gcloud compute addresses create IP_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --prefix-length=20 \
      --description="Managed Lustre VPC Peering" \
      --network=NETWORK_NAME
    
  5. 이전 단계에서 만든 범위와 연결된 CIDR 블록을 가져옵니다.

    CIDR_BLOCK=$(
      gcloud compute addresses describe IP_RANGE_NAME \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )
    
  6. 만든 IP 범위의 TCP 트래픽을 허용하는 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create FIREWALL_NAME \
      --allow=tcp:988,tcp:6988 \
      --network=NETWORK_NAME \
      --source-ranges=$CIDR_BLOCK
    
  7. 피어링을 연결합니다.

    gcloud services vpc-peerings connect \
      --network=NETWORK_NAME \
      --ranges=IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

다중 NIC의 추가 서브넷 만들기

여러 네트워크 인터페이스 카드 (다중 NIC)를 사용하여 대역폭을 집계하려면 각 NIC에 대해 VPC 네트워크 내에 별도의 서브넷을 만들어야 합니다.

다중 NIC를 활용하려면 일반 VPC에 연결된 여러 실제 NIC가 있는 Compute Engine 머신 유형을 사용해야 합니다. RDMA 네트워크 프로필이 있는 VPC에 연결되는 NIC는 일반 네트워킹 대역폭을 늘리는 데 사용할 수 없습니다. 자세한 내용은 네트워킹 및 GPU 머신을 참고하세요.

추가 실제 NIC의 서브넷을 만들려면 다음 단계를 따르세요.

gcloud compute networks subnets create SUBNET_NAME_2 \
  --network=NETWORK_NAME \
  --range=10.130.0.0/20 \
  --region=REGION

각 추가 NIC에 대해 이 단계를 반복합니다. 각 서브넷의 IP 범위가 서로 겹치지 않는지 확인합니다.

VPC 서비스 제어

Managed Lustre는 VPC 서비스 제어 (VPC-SC)를 지원합니다. 자세한 내용은 서비스 경계로 인스턴스 보호 를 참고하세요.

VPC 설정 문제 해결

서비스 servicenetworking.googleapis.com의 피어링을 추가할 권한이 거부됨

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

이 오류는 사용자 계정에 servicenetworking.services.addPeering IAM 권한이 없음을 의미합니다.

계정에 다음 역할 중 하나를 추가하는 방법은 IAM으로 액세스 제어를 참고하세요.

  • roles/compute.networkAdmin 또는
  • roles/servicenetworking.networksAdmin

CreateConnection에서 할당된 범위를 수정할 수 없음

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."

이 오류는 IP 범위가 다른 이 네트워크에서 VPC 피어링을 이미 만든 경우 반환됩니다. 다음과 같은 두 가지 문제 해결 방법이 있습니다.

기존 IP 범위를 바꿉니다.

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

또는 기존 연결에 새 IP 범위를 추가합니다.

  1. 피어링의 기존 IP 범위 목록을 가져옵니다.

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. 그런 다음 피어링에 새 범위를 추가합니다.

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

IP 주소 범위 소진됨

IP 주소 범위 소진됨 오류로 인해 인스턴스 생성이 실패하는 경우 다음 단계를 따르세요.

ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted

VPC 가이드에 따라 기존 비공개 연결을 수정하여 IP 주소 범위를 추가합니다.

프리픽스 길이는 /20 (4,096개 주소) 이상으로 하는 것이 좋습니다.

다음 단계