Memecahkan masalah pembuatan cluster

Menggunakan alat gcpdiag

gcpdiag adalah alat open source. Ini bukan produk Google Cloud yang didukung secara resmi. Anda dapat menggunakan alat gcpdiag untuk membantu mengidentifikasi dan memperbaiki masalah project Google Cloud. Untuk mengetahui informasi selengkapnya, lihat project gcpdiag di GitHub.

Alat gcpdiag membantu Anda menemukan masalah pembuatan cluster Dataproc berikut dengan melakukan pemeriksaan berikut:

  • Error kehabisan stok: Mengevaluasi log Logs Explorer untuk menemukan kehabisan stok di wilayah dan zona.
  • Kuota tidak mencukupi: Memeriksa ketersediaan kuota di project cluster Dataproc.
  • Konfigurasi jaringan tidak lengkap: Melakukan pengujian konektivitas jaringan, termasuk pemeriksaan aturan firewall yang diperlukan dan konfigurasi IP eksternal dan internal. Jika cluster telah dihapus, alat gcpdiag tidak dapat melakukan pemeriksaan konektivitas jaringan.
  • Konfigurasi lintas project salah: Memeriksa akun layanan lintas project dan meninjau peran tambahan serta penerapan kebijakan organisasi.
  • Peran IAM VPC bersama tidak ada: Jika cluster Dataproc menggunakan jaringan VPC Bersama, periksa penambahan peran akun layanan yang diperlukan.
  • Kegagalan tindakan inisialisasi: Mengevaluasi log Logs Explorer untuk menemukan kegagalan skrip tindakan inisialisasi dan waktu tunggu habis.

Untuk mengetahui daftar langkah pembuatan cluster gcpdiag, lihat Langkah potensial.

Jalankan perintah gcpdiag

Anda dapat menjalankan perintah gcpdiag dari Cloud Shell di konsol Google Cloud atau dalam penampung Docker.

Konsol Google Cloud

  1. Selesaikan, lalu salin perintah berikut.
  2. gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. Buka konsol Google Cloud dan aktifkan Cloud Shell.
  4. Buka Cloud Console
  5. Tempel perintah yang disalin.
  6. Jalankan perintah gcpdiag, yang mendownload image docker gcpdiag, lalu melakukan pemeriksaan diagnostik. Jika berlaku, ikuti petunjuk output untuk memperbaiki pemeriksaan yang gagal.

Docker

Anda dapat menjalankan gcpdiag menggunakan wrapper yang memulai gcpdiag dalam penampung Docker. Docker atau Podman harus diinstal.

  1. Salin dan jalankan perintah berikut di workstation lokal Anda.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Jalankan perintah gcpdiag.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Lihat parameter yang tersedia untuk runbook ini.

Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi resource
    • CLUSTER_NAME: Nama cluster Dataproc target di project Anda
    • OPTIONAL_PARAMETERS: Tambahkan satu atau beberapa parameter opsional berikut. Parameter ini diperlukan jika cluster telah dihapus.
      • cluster_uuid: UUID cluster Dataproc target di project Anda
      • service_account: Akun layanan VM cluster Dataproc
      • subnetwork: Jalur URI lengkap subnetwork cluster Dataproc
      • internal_ip_only: Benar atau Salah
      • cross_project: ID lintas project jika cluster Dataproc menggunakan akun layanan VM di project lain

Flag yang berguna:

Untuk mengetahui daftar dan deskripsi semua flag alat gcpdiag, lihat petunjuk penggunaan gcpdiag.

Memahami dan memperbaiki error pembuatan cluster

Bagian ini mencantumkan pesan error Dataproc, serta penyebab dan solusinya yang umum.

  • Waktu operasi habis: Hanya 0 dari 2 datanode/pengelola node minimum yang berjalan.

    Penyebab: Node master tidak dapat membuat cluster karena tidak dapat berkomunikasi dengan node pekerja.

    Solusi:

  • Izin compute.subnetworks.use yang diperlukan untuk projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Penyebab: Error ini dapat terjadi saat Anda mencoba menyiapkan cluster Dataproc menggunakan jaringan VPC di project lain dan akun layanan Agen Layanan Dataproc tidak memiliki izin yang diperlukan di project VPC Bersama yang menghosting jaringan.

    Solusi: Ikuti langkah-langkah yang tercantum dalam Membuat cluster yang menggunakan jaringan VPC di project lain.

  • Zona projects/zones/{zone} tidak memiliki resource yang memadai untuk memenuhi permintaan (resource type:compute)

    Penyebab: Zona yang digunakan untuk membuat cluster tidak memiliki resource yang memadai.

    Solusi:

  • Error Kuota Terlampaui

    Kuota CPUS/CPUS_ALL_REGIONS tidak mencukupi
    Kuota 'DISKS_TOTAL_GB' tidak mencukupi
    Kuota 'IN_USE_ADDRESSES' tidak mencukupi

    Penyebab: Permintaan CPU, disk, atau alamat IP Anda melebihi kuota yang tersedia.

    Solusi: Minta kuota tambahan dari konsol Google Cloud.

  • Tindakan inisialisasi gagal

    Penyebab: Tindakan inisialisasi yang diberikan selama pembuatan cluster gagal diinstal.

    Solusi:

  • Gagal melakukan inisialisasi node {cluster-name}: {component}

    Penyebab: Komponen Dataproc gagal diinisialisasi.

    Solusi: Lihat:

  • Pembuatan cluster gagal: Ruang alamat IP habis

    Penyebab: Ruang alamat IP yang diperlukan untuk menyediakan node cluster yang diminta tidak tersedia.

    Solusi:

    • Buat cluster di subnet atau jaringan yang berbeda.
    • Kurangi penggunaan di jaringan untuk mengosongkan ruang alamat IP.
    • Tunggu hingga ruang IP yang memadai tersedia di jaringan.
  • Pesan error skrip inisialisasi: Repositori REPO_NAME tidak lagi memiliki file Rilis

    Penyebab: Repositori backport Debian oldstable telah dihapus.

    Solusi:

    Tambahkan kode berikut sebelum kode yang menjalankan apt-get dalam skrip inisialisasi Anda.

    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
    
  • Jaringan tidak dapat dijangkau: dataproccontrol-REGION.googleapis.com/...*

    Penyebab: Jaringan VPC cluster Dataproc mungkin tidak memiliki rute ke internet yang diperlukan. Agen Dataproc yang berjalan di VM cluster memerlukan rute ke internet untuk mengakses API kontrol Dataproc guna mendapatkan tugas dan melaporkan status. Rute default yang dibuat sistem ke internet mungkin telah dihapus.

    Solusi:

    Tambahkan rute ke internet ke jaringan VPC cluster Anda: 0.0.0.0/0 untuk IPv4 dan ::/0 untuk IPv6 dengan --next-hop-gateway=default-internet-gateway. Tambahkan aturan firewall untuk kontrol akses.