Memecahkan masalah TPU di GKE


Halaman ini menunjukkan cara menyelesaikan masalah terkait TPU di Google Kubernetes Engine (GKE).

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.

Kuota tidak cukup untuk memenuhi permintaan TPU

Error yang mirip dengan Insufficient quota to satisfy the request menunjukkan bahwa project Google Cloud Anda tidak memiliki kuota yang memadai untuk memenuhi permintaan.

Untuk mengatasi masalah ini, periksa batas kuota dan penggunaan saat ini untuk project Anda. Jika diperlukan, minta penambahan kuota TPU.

Memeriksa batas kuota dan penggunaan saat ini

Bagian berikut membantu Anda memastikan bahwa Anda memiliki kuota yang cukup saat menggunakan TPU di GKE.

Untuk memeriksa batas dan penggunaan saat ini dari kuota Compute Engine API untuk TPU, ikuti langkah-langkah berikut:

  1. Buka halaman Kuota di Konsol Google Cloud:

    Buka Kuota

  2. Di kotak Filter , lakukan tindakan berikut:

    1. Pilih properti Service, masukkan Compute Engine API, lalu tekan Enter.

    2. Pilih properti Type, lalu pilih Quota.

    3. Pilih properti Nama dan masukkan nama kuota berdasarkan versi TPU dan . Misalnya, jika Anda berencana membuat node TPU v5e on-demand yang , masukkan TPU v5 Lite PodSlice chips.

      Versi TPU Nama kuota untuk instance on demand Nama kuota untuk instance Spot2
      TPU v3 TPU v3 Device chips Preemptible TPU v3 Device chips
      TPU v3 TPU v3 PodSlice chips Preemptible TPU v3 PodSlice chips
      TPU v4 TPU v4 PodSlice chips Preemptible TPU v4 PodSlice chips
      TPU v5e TPU v5 Lite Device chips Preemptible TPU v5 Lite Device chips
      TPU v5e TPU v5 Lite PodSlice chips Preemptible TPU v5 Lite PodSlice chips
      TPU v5p TPU v5p chips Preemptible TPU v5p chips
      TPU v6e (Pratinjau) TPU v6e Slice chips Preemptible TPU v6e Lite PodSlice chips
    4. Pilih properti Dimensions (e.g. locations) dan masukkan region: diikuti dengan nama region tempat Anda berencana membuat TPU di GKE. Misalnya, masukkan region:us-west4 jika Anda berencana membuat node slice TPU di zona us-west4-a. Kuota TPU bersifat regional, sehingga semua zona dalam region yang sama menggunakan kuota TPU yang sama.

Jika tidak ada kuota yang cocok dengan filter yang Anda masukkan, berarti project belum diberi kuota yang ditentukan untuk region yang Anda butuhkan, dan Anda harus meminta peningkatan kuota TPU.

Saat reservasi TPU dibuat, nilai batas dan penggunaan saat ini untuk kuota yang sesuai akan meningkat sesuai dengan jumlah chip dalam reservasi TPU. Misalnya, saat pemesanan dibuat untuk 16 chip TPU v5e, Batas dan Penggunaan saat ini untuk kuota TPU v5 Lite PodSlice chips di region yang relevan akan bertambah 16.

Kuota untuk resource GKE tambahan

Anda mungkin perlu meningkatkan kuota terkait GKE berikut di region tempat GKE membuat resource Anda.

  • Kuota SSD Persistent Disk (GB): Disk booting setiap node Kubernetes memerlukan 100 GB secara default. Oleh karena itu, kuota ini harus ditetapkan setidaknya sebesar jumlah maksimum node GKE yang Anda perkirakan akan dibuat dan 100 GB (node * 100 GB).
  • Kuota alamat IP yang digunakan: Setiap node Kubernetes menggunakan satu alamat IP. Oleh karena itu, kuota ini harus ditetapkan setidaknya setinggi jumlah maksimum node GKE yang Anda perkirakan akan dibuat.
  • Pastikan max-pods-per-node selaras dengan rentang subnet: Setiap node Kubernetes menggunakan rentang IP sekunder untuk Pod. Misalnya, max-pods-per-node dari 32 memerlukan 64 alamat IP yang diterjemahkan menjadi subnet /26 per node. Perhatikan bahwa rentang ini tidak boleh dibagikan dengan cluster lain. Untuk menghindari penggunaan rentang alamat IP secara maksimal, gunakan flag --max-pods-per-node untuk membatasi jumlah pod yang diizinkan untuk dijadwalkan di node. Kuota untuk max-pods-per-node harus ditetapkan setidaknya sama dengan jumlah maksimum node GKE yang Anda perkirakan akan dibuat.

Untuk meminta penambahan kuota, lihat Meminta kuota yang lebih tinggi.

Error saat mengaktifkan penyediaan otomatis node di node pool slice TPU

Error berikut terjadi saat Anda mengaktifkan penyediaan otomatis node di cluster GKE yang tidak mendukung TPU.

Pesan errornya mirip dengan yang berikut ini:

ERROR: (gcloud.container.clusters.create) ResponseError: code=400,
  message=Invalid resource: tpu-v4-podslice.

Untuk mengatasi masalah ini, upgrade cluster GKE Anda ke versi 1.27.6 atau yang lebih baru.

GKE tidak otomatis menyediakan node slice TPU

Bagian berikut menjelaskan kasus saat GKE tidak menyediakan node slice TPU secara otomatis dan cara memperbaikinya.

Error konfigurasi batas

GKE tidak otomatis menyediakan node slice TPU jika batas penyediaan otomatis yang Anda tentukan untuk cluster terlalu rendah. Anda mungkin mengamati error berikut dalam skenario tersebut:

  • Jika ada node pool slice TPU, tetapi GKE tidak dapat menskalakan node karena melanggar batas resource, Anda dapat melihat pesan error berikut saat menjalankan perintah kubectl get events:

    11s Normal NotTriggerScaleUp pod/tpu-workload-65b69f6c95-ccxwz pod didn't
    trigger scale-up: 1 node(s) didn't match Pod's node affinity/selector, 1 max
    cluster cpu, memory limit reached
    

    Selain itu, dalam skenario ini, Anda dapat melihat pesan peringatan yang mirip dengan berikut ini di konsol Google Cloud:

    "Your cluster has one or more unschedulable Pods"
    
  • Saat GKE mencoba menyediakan otomatis node pool slice TPU yang melebihi batas resource, log visibilitas autoscaler cluster akan menampilkan pesan error berikut:

    messageId: "no.scale.up.nap.pod.zonal.resources.exceeded"
    

    Selain itu, dalam skenario ini, Anda dapat melihat pesan peringatan yang mirip dengan berikut ini di konsol Google Cloud:

    "Can't scale up because node auto-provisioning can't provision a node pool for
    the Pod if it would exceed resource limits"
    

Untuk mengatasi masalah ini, tingkatkan jumlah maksimum chip TPU, core CPU, dan memori di cluster.

Untuk menyelesaikan langkah-langkah ini:

  1. Menghitung persyaratan resource untuk jenis dan jumlah mesin TPU tertentu. Perhatikan bahwa Anda perlu menambahkan resource untuk node pool slice non-TPU, seperti beban kerja sistem.
  2. Dapatkan deskripsi TPU, CPU, dan memori yang tersedia untuk jenis dan zona mesin tertentu. Gunakan gcloud CLI:

    gcloud compute machine-types describe MACHINE_TYPE \
        --zone COMPUTE_ZONE
    

    Ganti kode berikut:

    • MACHINE_TYPE: Jenis mesin yang akan ditelusuri.
    • COMPUTE_ZONE: Nama zona komputasi.

    Output-nya mencakup baris deskripsi yang mirip dengan berikut ini:

      description: 240 vCPUs, 407 GB RAM, 4 Google TPUs
      ```
    
  3. Hitung jumlah total CPU dan memori dengan mengalikan jumlah ini dengan jumlah node yang diperlukan. Misalnya, jenis mesin ct4p-hightpu-4t menggunakan 240 core CPU dan RAM 407 GB dengan 4 chip TPU. Dengan asumsi bahwa Anda memerlukan 20 chip TPU, yang sesuai dengan lima node, Anda harus menentukan nilai berikut:

    • --max-accelerator=type=tpu-v4-podslice,count=20.
    • CPU = 1200 (240 kali 5)
    • memory = 2035 (407 kali 5)

    Anda harus menentukan batas dengan beberapa margin untuk mengakomodasi node slice non-TPU seperti workload sistem.

  4. Perbarui batas cluster:

    gcloud container clusters update CLUSTER_NAME \
        --max-accelerator type=TPU_ACCELERATOR \
        count=MAXIMUM_ACCELERATOR \
        --max-cpu=MAXIMUM_CPU \
        --max-memory=MAXIMUM_MEMORY
    

    Ganti kode berikut:

    • CLUSTER_NAME: Nama cluster.
    • TPU_ACCELERATOR: Nama akselerator TPU.
    • MAXIMUM_ACCELERATOR: Jumlah maksimum TPU chip dalam cluster.
    • MAXIMUM_CPU: Jumlah maksimum core dalam cluster.
    • MAXIMUM_MEMORY: Jumlah maksimum gigabyte pada memori dalam cluster.

Tidak semua instance berjalan

ERROR: nodes cannot be created due to lack of capacity. The missing nodes
will be created asynchronously once capacity is available. You can either
wait for the nodes to be up, or delete the node pool and try re-creating it
again later.

Error ini dapat muncul saat waktu operasi GKE habis atau permintaan tidak dapat dipenuhi dan diantrekan untuk menyediakan node pool TPU satu host atau multi-host. Untuk mengurangi masalah kapasitas, Anda dapat menggunakan reservasi, atau mempertimbangkan Spot VM.

Error konfigurasi beban kerja

Error ini terjadi karena kesalahan konfigurasi beban kerja. Berikut adalah beberapa penyebab paling umum error ini:

  • Label cloud.google.com/gke-tpu-accelerator dan cloud.google.com/gke-tpu-topology salah atau tidak ada dalam spesifikasi Pod. GKE tidak akan menyediakan node pool slice TPU dan penyediaan otomatis node tidak akan dapat menskalakan cluster.
  • Spesifikasi Pod tidak menentukan google.com/tpu dalam persyaratan resource-nya.

Untuk mengatasi masalah ini, lakukan salah satu tindakan berikut:

  1. Pastikan tidak ada label yang tidak didukung di pemilih node workload Anda. Misalnya, pemilih node untuk label cloud.google.com/gke-nodepool akan mencegah GKE membuat node pool tambahan untuk Pod Anda.
  2. Pastikan spesifikasi template Pod, tempat workload TPU Anda berjalan, menyertakan nilai berikut:
    • Label cloud.google.com/gke-tpu-accelerator dan cloud.google.com/gke-tpu-topology dalam nodeSelector-nya.
    • google.com/tpu dalam permintaannya.

Untuk mempelajari cara men-deploy workload TPU di GKE, lihat Menjalankan workload yang menampilkan jumlah TPU chip yang tersedia di TPU node pool slice.

Menjadwalkan error saat men-deploy Pod yang menggunakan TPU di GKE

Masalah berikut terjadi saat GKE tidak dapat menjadwalkan Pod yang meminta TPU di node slice TPU. Misalnya, hal ini dapat terjadi jika beberapa slice non-TPU sudah dijadwalkan di node TPU.

Pesan error, yang dikeluarkan sebagai peristiwa FailedScheduling di Pod, mirip dengan yang berikut ini:

Cannot schedule pods: Preemption is not helpful for scheduling.

Error message: 0/2 nodes are available: 2 node(s) had untolerated taint
{google.com/tpu: present}. preemption: 0/2 nodes are available: 2 Preemption is
not helpful for scheduling

Untuk menyelesaikan masalah ini, lakukan tindakan berikut:

Pastikan Anda memiliki setidaknya satu node pool CPU di cluster sehingga Pod penting sistem dapat berjalan di node non-TPU. Untuk mempelajari lebih lanjut, lihat Men-deploy Pod ke node pool tertentu.

Memecahkan masalah umum pada JobSet di GKE

Untuk masalah umum terkait JobSet, dan saran pemecahan masalah, lihat halaman Pemecahan Masalah JobSet. Halaman ini membahas masalah umum seperti error "Webhook tidak tersedia", tugas turunan, atau Pod yang tidak dibuat, dan melanjutkan masalah workload yang didahului menggunakan JobSet dan Kueue.

Inisialisasi TPU gagal

Masalah berikut terjadi saat GKE tidak dapat menyediakan workload TPU baru karena tidak memiliki izin untuk mengakses perangkat TPU.

Pesan errornya mirip dengan yang berikut ini:

TPU platform initialization failed: FAILED_PRECONDITION: Couldn't mmap: Resource
temporarily unavailable.; Unable to create Node RegisterInterface for node 0,
config: device_path: "/dev/accel0" mode: KERNEL debug_data_directory: ""
dump_anomalies_only: true crash_in_debug_dump: false allow_core_dump: true;
could not create driver instance

Untuk mengatasi masalah ini, pastikan Anda menjalankan container TPU dalam mode dilindungi atau meningkatkan ulimit di dalam container.

Deadlock penjadwalan

Dua atau beberapa penjadwalan Tugas mungkin gagal dalam deadlock. Misalnya, dalam skenario saat semua hal berikut terjadi:

  • Anda memiliki dua Tugas (Tugas A dan Tugas B) dengan aturan afinitas Pod. GKE menjadwalkan slice TPU untuk kedua Tugas dengan topologi TPU v4-32.
  • Anda memiliki dua slice TPU v4-32 di cluster.
  • Cluster Anda memiliki kapasitas yang cukup untuk menjadwalkan Tugas dan, secara teori, setiap Tugas dapat dijadwalkan dengan cepat di setiap slice TPU.
  • Scheduler Kubernetes menjadwalkan satu Pod dari Tugas A pada satu slice, lalu menjadwalkan satu Pod dari Tugas B di slice yang sama.

Dalam hal ini, dengan mempertimbangkan aturan afinitas Pod untuk Tugas A, scheduler akan mencoba menjadwalkan semua Pod yang tersisa untuk Tugas A dan Tugas B, pada tiap slice TPU. Akibatnya, GKE tidak akan dapat sepenuhnya menjadwalkan Tugas A atau Tugas B. Oleh karena itu, status kedua Tugas akan tetap Tertunda.

Untuk mengatasi masalah ini, gunakan anti-afinitas Pod dengan cloud.google.com/gke-nodepool sebagai topologyKey, seperti ditunjukkan dalam contoh berikut:

apiVersion: batch/v1
kind: Job
metadata:
 name: pi
spec:
 parallelism: 2
 template:
   metadata:
     labels:
       job: pi
   spec:
     affinity:
       podAffinity:
         requiredDuringSchedulingIgnoredDuringExecution:
         - labelSelector:
             matchExpressions:
             - key: job
               operator: In
               values:
               - pi
           topologyKey: cloud.google.com/gke-nodepool
       podAntiAffinity:
         requiredDuringSchedulingIgnoredDuringExecution:
         - labelSelector:
             matchExpressions:
             - key: job
               operator: NotIn
               values:
               - pi
           topologyKey: cloud.google.com/gke-nodepool
           namespaceSelector:
             matchExpressions:
             - key: kubernetes.io/metadata.name
               operator: NotIn
               values:
               - kube-system
     containers:
     - name: pi
       image: perl:5.34.0
       command: ["sleep",  "60"]
     restartPolicy: Never
 backoffLimit: 4

Izin ditolak selama pembuatan cluster di us-central2

Jika Anda mencoba membuat cluster di us-central2 (satu-satunya region tempat TPU v4 tersedia), Anda mungkin akan melihat pesan error yang mirip dengan berikut:

ERROR: (gcloud.container.clusters.create) ResponseError: code=403,
message=Permission denied on 'locations/us-central2' (or it may not exist).

Error ini terjadi karena region us-central2 adalah region pribadi.

Untuk mengatasi masalah ini, ajukan kasus dukungan atau hubungi tim akun Anda untuk meminta us-central2 ditampilkan dalam project Google Cloud Anda.

Kuota tidak cukup selama pembuatan TPU node pool di us-central2

Jika Anda mencoba membuat node pool slice TPU di us-central2 (satu-satunya region tempat TPU v4 tersedia), Anda mungkin perlu meningkatkan kuota terkait GKE berikut saat pertama kali membuat node pool TPU v4:

  • Kuota SSD Persistent Disk (GB) di us-central2: Disk booting setiap node Kubernetes memerlukan 100 GB secara default. Oleh karena itu, kuota ini harus ditetapkan setidaknya setinggi produk dari jumlah maksimum node GKE yang Anda perkirakan akan dibuat di us-central2 dan 100 GB (maximum_nodes X 100 GB).
  • Kuota alamat IP yang digunakan di us-central2: Setiap node Kubernetes menggunakan satu alamat IP. Oleh karena itu, kuota ini harus ditetapkan setidaknya setinggi jumlah maksimum node GKE yang Anda perkirakan akan dibuat di us-central2.

Subnet tidak ada selama pembuatan cluster GKE

Jika Anda mencoba membuat cluster di us-central2 (satu-satunya region tempat TPU v4 tersedia), Anda mungkin akan melihat pesan error yang mirip dengan berikut:

ERROR: (gcloud.container.clusters.create) ResponseError: code=404,
message=Not found: project <PROJECT> does not have an auto-mode subnetwork
for network "default" in region <REGION>.

Subnet diperlukan di jaringan VPC untuk menyediakan konektivitas ke node GKE Anda. Namun, di region tertentu seperti us-central2, subnet default mungkin tidak dibuat, meskipun Anda menggunakan jaringan VPC default dalam mode otomatis (untuk pembuatan subnet).

Untuk mengatasi masalah ini, pastikan Anda telah membuat subnet kustom di region sebelum membuat cluster GKE. Subnet ini tidak boleh tumpang-tindih dengan subnet lain yang dibuat di region lain dalam jaringan VPC yang sama.

Melihat log TPU GKE

Untuk melihat semua log terkait TPU untuk workload tertentu, Cloud Logging menawarkan lokasi terpusat untuk membuat kueri log ini saat logging sistem dan workload GKE diaktifkan. Di Cloud Logging, log diatur ke dalam entri log, dan setiap entri log memiliki format terstruktur. Berikut adalah contoh entri log tugas pelatihan TPU.

{
  insertId: "gvqk7r5qc5hvogif"
  labels: {
  compute.googleapis.com/resource_name: "gke-tpu-9243ec28-wwf5"
  k8s-pod/batch_kubernetes_io/controller-uid: "443a3128-64f3-4f48-a4d3-69199f82b090"
  k8s-pod/batch_kubernetes_io/job-name: "mnist-training-job"
  k8s-pod/controller-uid: "443a3128-64f3-4f48-a4d3-69199f82b090"
  k8s-pod/job-name: "mnist-training-job"
}
logName: "projects/gke-tpu-demo-project/logs/stdout"
receiveTimestamp: "2024-06-26T05:52:39.652122589Z"
resource: {
  labels: {
    cluster_name: "tpu-test"
    container_name: "tensorflow"
    location: "us-central2-b"
    namespace_name: "default"
    pod_name: "mnist-training-job-l74l8"
    project_id: "gke-tpu-demo-project"
}
  type: "k8s_container"
}
severity: "INFO"
textPayload: "
  1/938 [..............................] - ETA: 13:36 - loss: 2.3238 - accuracy: 0.0469
  6/938 [..............................] - ETA: 9s - loss: 2.1227 - accuracy: 0.2995   
 13/938 [..............................] - ETA: 8s - loss: 1.7952 - accuracy: 0.4760
 20/938 [..............................] - ETA: 7s - loss: 1.5536 - accuracy: 0.5539
 27/938 [..............................] - ETA: 7s - loss: 1.3590 - accuracy: 0.6071
 36/938 [>.............................] - ETA: 6s - loss: 1.1622 - accuracy: 0.6606
 44/938 [>.............................] - ETA: 6s - loss: 1.0395 - accuracy: 0.6935
 51/938 [>.............................] - ETA: 6s - loss: 0.9590 - accuracy: 0.7160
……
937/938 [============================>.] - ETA: 0s - loss: 0.2184 - accuracy: 0.9349"
timestamp: "2024-06-26T05:52:38.962950115Z"
}

Setiap entri log dari node slice TPU memiliki label compute.googleapis.com/resource_name dengan nilai yang ditetapkan sebagai nama node. Jika ingin melihat log dari node tertentu dan mengetahui nama node, Anda dapat memfilter log berdasarkan node tersebut dalam kueri. Misalnya, kueri berikut menunjukkan log dari node TPU gke-tpu-9243ec28-wwf5:

resource.type="k8s_container"
labels."compute.googleapis.com/resource_name" = "gke-tpu-9243ec28-wwf5"

GKE melampirkan label cloud.google.com/gke-tpu-accelerator dan cloud.google.com/gke-tpu-topology ke semua node yang berisi TPU. Jadi, jika tidak yakin dengan nama node atau ingin mencantumkan semua node slice TPU, Anda dapat menjalankan perintah berikut:

kubectl get nodes -l cloud.google.com/gke-tpu-accelerator

Contoh output:

NAME                    STATUS   ROLES    AGE     VERSION
gke-tpu-9243ec28-f2f1   Ready    <none>   25m     v1.30.1-gke.1156000
gke-tpu-9243ec28-wwf5   Ready    <none>   7d22h   v1.30.1-gke.1156000

Anda dapat melakukan pemfilteran tambahan berdasarkan label node dan nilainya. Misalnya, perintah berikut mencantumkan node TPU dengan jenis dan topologi tertentu:

kubectl get nodes -l cloud.google.com/gke-tpu-accelerator=tpu-v5-lite-podslice,cloud.google.com/gke-tpu-topology=1x1

Untuk melihat semua log di seluruh node slice TPU, Anda dapat menggunakan kueri yang cocok dengan label ke akhiran node slice TPU. Misalnya, gunakan kueri berikut:

resource.type="k8s_container"
labels."compute.googleapis.com/resource_name" =~ "gke-tpu-9243ec28.*"
log_id("stdout")

Untuk melihat log yang terkait dengan beban kerja TPU tertentu menggunakan Tugas Kubernetes, Anda dapat memfilter log menggunakan label batch.kubernetes.io/job-name. Misalnya, untuk tugas mnist-training-job, Anda dapat menjalankan kueri berikut untuk log STDOUT:

resource.type="k8s_container"
labels."k8s-pod/batch_kubernetes_io/job-name" = "mnist-training-job"
log_id("stdout")

Untuk melihat log workload TPU menggunakan JobSet Kubernetes, Anda dapat memfilter log menggunakan label k8s-pod/jobset_sigs_k8s_io/jobset-name. Contoh:

resource.type="k8s_container"
labels."k8s-pod/jobset_sigs_k8s_io/jobset-name"="multislice-job"

Untuk melihat perincian lebih lanjut, Anda dapat memfilter berdasarkan label beban kerja lainnya. Misalnya, untuk melihat log beban kerja multislice dari pekerja 0 dan slice 1, Anda dapat memfilter berdasarkan label: job-complete-index dan job-index:

​​resource.type="k8s_container"
labels."k8s-pod/jobset_sigs_k8s_io/jobset-name"="multislice-job"
labels."k8s-pod/batch_kubernetes_io/job-completion-index"="0"
labels."k8s-pod/jobset_sigs_k8s_io/job-index"="1"

Anda juga dapat memfilter menggunakan pola nama Pod:

resource.labels.pod_name:<jobSetName>-<replicateJobName>-<job-index>-<worker-index>

Misalnya, dalam kueri berikut, jobSetName adalah multislice-job, dan replicateJobName adalah slice. job-index dan worker-index adalah 0:

resource.type="k8s_container"
labels."k8s-pod/jobset_sigs_k8s_io/jobset-name"="multislice-job"
resource.labels.pod_name:"multislice-job-slice-0-0"

Workload TPU lainnya, seperti satu workload Pod GKE, Anda dapat memfilter log menurut nama Pod. Contoh:

resource.type="k8s_container"
resource.labels.pod_name="tpu-job-jax-demo"

Jika ingin memeriksa apakah plugin perangkat TPU berjalan dengan benar, Anda dapat menggunakan kueri berikut untuk memeriksa log penampungnya:

resource.type="k8s_container"
labels.k8s-pod/k8s-app="tpu-device-plugin"
resource.labels.namespace_name="kube-system"

Jalankan kueri berikut untuk memeriksa peristiwa terkait:

jsonPayload.involvedObject.name=~"tpu-device-plugin.*"
log_id("events")

Untuk semua kueri, Anda dapat menambahkan filter tambahan, seperti nama cluster, lokasi, dan project ID. Anda juga dapat menggabungkan kondisi untuk mempersempit hasil. Contoh:

resource.type="k8s_container" AND
resource.labels.project_id="gke-tpu-demo-project" AND
resource.labels.location="us-west1" AND
resource.labels.cluster_name="tpu-demo" AND
resource.labels.namespace_name="default" AND
labels."compute.googleapis.com/resource_name" =~ "gke-tpu-9243ec28.*" AND
labels."k8s-pod/batch_kubernetes_io/job-name" = "mnist-training-job" AND
log_id("stdout")

Operator AND bersifat opsional di antara perbandingan dan dapat dihilangkan. Untuk mengetahui informasi selengkapnya tentang bahasa kueri, Anda dapat membaca Spesifikasi bahasa kueri logging. Anda juga dapat membaca Kueri log terkait Kubernetes untuk mengetahui contoh kueri lainnya.

Jika Anda lebih memilih SQL menggunakan Log Analytics, Anda dapat menemukan contoh kueri di Kueri SQL dengan Log Analytics. Atau, Anda juga dapat menjalankan kueri menggunakan Google Cloud CLI, bukan di Logs Explorer. Contoh:

gcloud logging read 'resource.type="k8s_container" labels."compute.googleapis.com/resource_name" =~ "gke-tpu-9243ec28.*" log_id("stdout")' --limit 10 --format json

Langkah selanjutnya

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.