gcpdiag
도구 사용
gcpdiag
는 오픈소스 도구입니다. 공식적으로 지원되는 Google Cloud 제품이 아닙니다.
gcpdiag
도구를 사용하여 Google Cloud 프로젝트 문제를 식별하고 해결할 수 있습니다. 자세한 내용은 GitHub의 gcpdiag 프로젝트를 참조하세요.
gcpdiag
도구는 다음 검사를 수행하여 다음과 같은 Dataproc 클러스터 생성 문제를 확인하는 데 도움이 됩니다.
- 소진 오류: 로그 탐색기 로그를 평가하여 리전 및 영역의 소진을 발견합니다.
- 할당량 부족: Dataproc 클러스터 프로젝트에서 할당량 가용성을 확인합니다.
- 불완전한 네트워크 구성: 필요한 방화벽 규칙과 외부 및 내부 IP 구성 검사를 포함한 네트워크 연결 테스트를 수행합니다. 클러스터가 삭제된 경우
gcpdiag
도구는 네트워크 연결 검사를 수행할 수 없습니다. - 잘못된 프로젝트 간 구성: 프로젝트 간 서비스 계정을 확인하고 추가 역할 및 조직 정책 시행을 검토합니다.
- 공유 VPC IAM 역할 누락: Dataproc 클러스터에서 공유 VPC 네트워크를 사용하는 경우 필요한 서비스 계정 역할 추가를 확인합니다.
- 초기화 작업 실패: 로그 탐색기 로그를 평가하여 초기화 작업 스크립트 실패 및 시간 초과를 발견합니다.
gcpdiag
클러스터 생성 단계 목록은 잠재적 단계를 참조하세요.
gcpdiag
명령어 실행
Google Cloud 콘솔의 Cloud Shell 또는 Docker 컨테이너 내에서 gcpdiag
명령어를 실행할 수 있습니다.
Google Cloud 콘솔
- 다음 명령어를 작성하고 복사합니다.
- Google Cloud 콘솔을 열고 Cloud Shell을 활성화합니다. Cloud 콘솔 열기
- 복사한 명령어를 붙여넣습니다.
gcpdiag
명령어를 실행하면gcpdiag
Docker 이미지를 다운로드한 후 진단 검사를 수행합니다. 해당하는 경우 출력 안내에 따라 실패한 검사를 수정합니다.
gcpdiag runbook dataproc/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGS
Docker
Docker 컨테이너에서 gcpdiag
를 시작하는 래퍼를 사용하여 gcpdiag
를 실행할 수 있습니다. Docker 또는 Podman이 설치되어 있어야 합니다.
- 로컬 워크스테이션에서 다음 명령어를 복사하고 실행합니다.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
-
gcpdiag
명령어를 실행합니다../gcpdiag runbook dataproc/cluster-creation \ --parameter project_id=PROJECT_ID \ --parameter cluster_name=CLUSTER_NAME \ --parameter OPTIONAL_FLAGS
이 런북에 사용 가능한 매개변수를 봅니다.
다음을 바꿉니다.
- PROJECT_ID: 리소스가 포함된 프로젝트의 ID
- CLUSTER_NAME: 프로젝트의 대상 Dataproc 클러스터 이름
- OPTIONAL_PARAMETERS: 다음과 같은 선택적인 매개변수를 하나 이상 추가합니다. 클러스터가 삭제된 경우 이 매개변수가 필요합니다.
cluster_uuid
: 프로젝트에 있는 대상 Dataproc 클러스터의 UUIDservice_account
: Dataproc 클러스터 VM 서비스 계정subnetwork
: Dataproc 클러스터 서브네트워크 전체 URI 경로internal_ip_only
: True 또는 Falsecross_project
: Dataproc 클러스터가 다른 프로젝트의 VM 서비스 계정을 사용하는 경우의 교차 프로젝트 ID입니다.
유용한 플래그:
--universe-domain
: 해당되는 경우 리소스를 호스팅하는 신뢰할 수 있는 파트너 주권 클라우드 도메인--parameter
또는-p
: 런북 파라미터
모든 gcpdiag
도구 플래그의 목록과 설명은 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 콘솔에서 추가 할당량을 요청합니다.
초기화 작업 실패
원인: 클러스터 생성 중에 제공된 초기화 작업을 설치하지 못했습니다.
솔루션:
- 초기화 작업 고려사항 및 가이드라인을 참조하세요.
- 출력 로그를 검토합니다. 오류 메시지는 Cloud Storage의 로그에 대한 링크를 제공해야 합니다.
{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
). 액세스 제어를 위한 방화벽 규칙을 추가합니다.