클러스터 생성 오류 문제 해결

이 페이지에서는 Dataproc 클러스터 생성 오류를 진단하고 수정하는 데 도움이 되는 정보를 제공합니다.

gcpdiag 도구 사용

gcpdiag는 Google Cloud 프로젝트에서 문제를 식별하고 수정하는 데 도움이 되는 오픈소스 도구입니다. gcpdiag는 공식적으로 지원되는 Google Cloud 제품이 아닙니다. 자세한 내용은 GitHub의 gcpdiag 프로젝트를 참조하세요.

gcpdiag 도구는 다음 검사를 수행하여 다음 Dataproc 클러스터 만들기 문제를 확인하는 데 도움이 됩니다.

  • 소진 오류: 로그 탐색기 로그를 평가하여 리전 및 영역의 소진을 발견합니다.
  • 할당량 부족: Dataproc 클러스터 프로젝트에서 할당량 가용성을 확인합니다.
  • 불완전한 네트워크 구성: 필요한 방화벽 규칙과 외부 및 내부 IP 구성 검사를 포함한 네트워크 연결 테스트를 수행합니다. 클러스터가 삭제된 경우 gcpdiag 도구는 네트워크 연결 검사를 수행할 수 없습니다.
  • 잘못된 프로젝트 간 구성: 프로젝트 간 서비스 계정을 확인하고 추가 역할 및 조직 정책 시행을 검토합니다.
  • 공유 VPC IAM 역할 누락: Dataproc 클러스터에서 공유 VPC 네트워크를 사용하는 경우 필요한 서비스 계정 역할 추가를 확인합니다.
  • 초기화 작업 실패: 로그 탐색기 로그를 평가하여 초기화 작업 스크립트 실패 및 시간 초과를 발견합니다.

gcpdiag 클러스터 생성 단계 목록은 잠재적 단계를 참조하세요.

Cloud Shell

  1. Cloud Shell에서 다음 명령어를 복사하고 실행합니다.
    gcpdiag runbook dataproc/cluster-creation \
      --project=PROJECT_ID \
      --parameter cluster_name=CLUSTER_NAME \
      --parameter OPTIONAL_FLAGS

Google Cloud 콘솔

  1. 다음 명령어를 복사합니다.
  2. gcpdiag runbook dataproc/cluster-creation \
      --project=PROJECT_ID \
      --parameter cluster_name=CLUSTER_NAME \
      --parameter OPTIONAL_FLAGS
  3. Google Cloud 콘솔을 열고 Cloud Shell을 활성화합니다.
  4. Cloud 콘솔 열기
  5. 복사한 명령어를 붙여넣습니다.
  6. gcpdiag 명령어를 실행합니다. 이렇게 하면 gcpdiag Docker 이미지가 다운로드되고 이 명령어에 대한 관련 검사가 실행됩니다. 실패한 검사를 수정하는 방법에 대한 안내를 따르세요.

Docker

Docker 컨테이너에서 gcpdiag를 시작하는 래퍼를 사용하여 gcpdiag를 실행할 수 있습니다. 이 기능은 Docker 또는 Podman이 설치된 모든 머신에서 작동합니다.

  1. 로컬 워크스테이션에서 다음 명령어를 복사하고 실행합니다.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. gcpdiag 명령어를 실행합니다.
    ./gcpdiag runbook dataproc/cluster-creation \
      --project=PROJECT_ID \
      --parameter cluster_name=CLUSTER_NAME \
      --parameter OPTIONAL_FLAGS

이 런북에 사용 가능한 파라미터를 모두 봅니다.

다음을 바꿉니다.

  • PROJECT_ID: 리소스가 포함된 프로젝트의 ID입니다.
    • CLUSTER_NAME: 프로젝트 내 대상 Dataproc 클러스터의 이름입니다.
    • OPTIONAL FLAGS: 클러스터가 UI에서 삭제된 경우 추가 파라미터를 제공할 수 있습니다.

      • cluster_uuid: 프로젝트 내 대상 Dataproc 클러스터의 UUID입니다.
      • service_account: 리소스를 만드는 데 사용되는 Dataproc 클러스터 서비스 계정입니다.
      • subnetwork: Dataproc 클러스터 서브네트워크 URI(전체 경로)
      • internal_ip_only: True 또는 False
      • cross_project: Dataproc 클러스터와 동일한 프로젝트에 없는 경우 서비스 계정이 있는 프로젝트 간 ID입니다.

유용한 플래그는 다음과 같습니다.

  • --project: PROJECT_ID를 정의합니다.
  • --universe-domain: 해당되는 경우 리소스를 호스팅하는 신뢰할 수 있는 파트너 Sovereign Cloud 도메인을 정의하는 데 사용됩니다.
  • --parameter 또는 -p: 런북의 파라미터를 정의합니다.

사용 가능한 플래그에 대한 자세한 내용은 gcpdiag사용 안내를 참조하세요.

클러스터 생성 오류 메시지 수정

이 섹션에서는 Dataproc 오류 메시지와 일반적인 원인 및 해결 방법을 설명합니다.

  • 작업 시간 초과: 최소 필수 DataNode/노드 관리자 2개 중 0개만 실행 중입니다.

    원인: 마스터 노드는 작업자 노드와 통신할 수 없으므로 클러스터를 만들 수 없습니다.

    솔루션:

    • 방화벽 규칙 경고를 확인합니다.
    • 올바른 방화벽 규칙이 적용되었는지 확인합니다. 자세한 내용은 기본 Dataproc 방화벽 규칙 개요를 참조하세요.
    • Google Cloud 콘솔에서 연결 테스트를 수행하여 마스터 노드와 워커 노드 간의 통신을 차단하는 항목을 확인합니다.
  • projects/{projectId}/regions/{region}/subnetworks/{subnetwork}에 필요한 compute.subnetworks.use 권한

    원인: 다른 프로젝트의 VPC 네트워크를 사용하여 Dataproc 클러스터를 설정하려고 하는데 Dataproc 서비스 에이전트 서비스 계정에 네트워크를 호스팅하는 공유 VPC 프로젝트에 필요한 권한이 없으면 이 오류가 발생할 수 있습니다.

    해결 방법: 다른 프로젝트에서 VPC 네트워크를 사용하는 클러스터 만들기에 나열된 순서를 따릅니다.

  • projects/zones/{zone} 영역에 (resource type:compute) 요청을 처리하는 데 필요한 리소스가 부족합니다.

    원인: 클러스터를 만드는 데 사용되는 영역에 리소스가 부족합니다.

    솔루션:

    • 클러스터를 다른 영역에 만듭니다.
    • Dataproc 자동 영역 배치 기능을 사용합니다.
  • 할당량 초과 오류

    CPUS/CPUS_ALL_REGIONS 할당량 부족
    'DISKS_TOTAL_GB' 할당량 부족
    'IN_USE_ADDRESSES' 할당량 부족

    원인: CPU, 디스크 또는 IP 주소 요청이 사용 가능한 할당량을 초과합니다.

    해결 방법: Google Cloud 콘솔에서 추가 할당량을 요청합니다.

  • 초기화 작업 실패

    원인: 클러스터 생성 중에 제공된 초기화 작업을 설치하지 못했습니다.

    솔루션:

  • {cluster-name} 노드의 초기화 실패: {component}

    원인: Dataproc 구성요소를 초기화하지 못했습니다.

    해결 방법: 다음을 참고하세요.

  • 클러스터 생성 실패: IP 주소 공간 소진됨

    원인: 요청된 클러스터 노드를 프로비저닝하는 데 필요한 IP 주소 공간을 사용할 수 없습니다.

    솔루션:

    • 다른 서브네트워크 또는 네트워크에 클러스터를 만듭니다.
    • 네트워크 사용량을 줄여 IP 주소 공간을 확보합니다.
    • 네트워크에서 IP 공간을 충분히 확보할 수 있을 때까지 기다립니다.
  • 초기화 스크립트 오류 메시지: REPO_NAME 저장소에 더 이상 출시 파일이 없습니다.

    원인: Debian Oldstable 백포트 저장소가 삭제되었습니다.

    솔루션:

    초기화 스크립트에서 apt-get을 실행하는 코드 앞에 다음 코드를 추가합니다.

    oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}');
    stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}');
    
    matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)"
    if [[ -n "$matched_files" ]]; then
      for filename in "$matched_files"; do
        grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \
          sed -i -e 's/^.*-backports.*$//' "$filename"
      done
    fi
    
  • 네트워크에 연결할 수 없음: dataproccontrol-REGION.googleapis.com/...*

    원인: Dataproc 클러스터 VPC 네트워크에 필요한 인터넷 경로가 없을 수 있습니다. 클러스터 VM에서 실행되는 Dataproc 에이전트는 작업 및 보고 상태를 가져오기 위해 Dataproc 제어 API에 액세스할 수 있도록 인터넷 경로가 필요합니다. 인터넷에 대한 시스템 생성 기본 경로가 삭제되었을 수 있습니다.

    솔루션:

    --next-hop-gateway=default-internet-gateway를 사용하여 인터넷 경로를 클러스터 VPC 네트워크에 추가합니다(IPv4의 경우 0.0.0.0/0, IPv6의 경우 ::/0). 액세스 제어를 위한 방화벽 규칙을 추가합니다.

추가 자료