Memecahkan masalah logging di GKE


Halaman ini menunjukkan cara menyelidiki dan menyelesaikan masalah terkait logging GKE.

Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.

Log cluster tidak ada di Cloud Logging

Memastikan logging diaktifkan dalam project

  1. Cantumkan layanan yang diaktifkan:

    gcloud services list --enabled --filter="NAME=logging.googleapis.com"
    

    Output berikut menunjukkan bahwa logging diaktifkan untuk project ini:

    NAME                    TITLE
    logging.googleapis.com  Cloud Logging API
    

    Opsional: Periksa log di Logs Viewer untuk mengetahui siapa yang menonaktifkan API dan kapan mereka menonaktifkan API:

    protoPayload.methodName="google.api.serviceusage.v1.ServiceUsage.DisableService"
    protoPayload.response.services="logging.googleapis.com"
    
  2. Jika logging dinonaktifkan, aktifkan logging:

    gcloud services enable logging.googleapis.com
    

Memastikan logging diaktifkan di cluster

  1. Cantumkan cluster:

    gcloud container clusters list \
        --project=PROJECT_ID \
        '--format=value(name,loggingConfig.componentConfig.enableComponents)' \
        --sort-by=name | column -t
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.

    Outputnya mirip dengan yang berikut ini:

    cluster-1              SYSTEM_COMPONENTS
    cluster-2              SYSTEM_COMPONENTS;WORKLOADS
    cluster-3
    

    Jika nilai cluster Anda kosong, logging akan dinonaktifkan. Misalnya, cluster-3 dalam output ini menonaktifkan logging.

  2. Aktifkan logging cluster jika ditetapkan ke NONE:

    gcloud container clusters update CLUSTER_NAME  \
        --logging=SYSTEM,WORKLOAD \
        --location=COMPUTE_LOCATION
    

    Ganti kode berikut:

Memastikan node di node pool memiliki cakupan akses Cloud Logging

Salah satu cakupan berikut diperlukan bagi node untuk menulis log ke Cloud Logging:

  • https://www.googleapis.com/auth/logging.write
  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/logging.admin
  1. Periksa cakupan yang dikonfigurasi pada setiap node pool di cluster:

    gcloud container node-pools list --cluster=CLUSTER_NAME \
        --format="table(name,config.oauthScopes)" \
        --location COMPUTE_LOCATION
    

    Ganti kode berikut:

    Migrasikan workload Anda dari node pool lama ke node pool yang baru dibuat dan pantau progresnya.

  2. Buat node pool baru dengan cakupan logging yang benar:

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --scopes="gke-default"
    

    Ganti kode berikut:

Memastikan bahwa akun layanan node pool memiliki peran dengan izin IAM yang benar

Akun layanan harus memiliki peran yang berisi izin logging.logEntries.create untuk membuat log.

  1. Temukan akun layanan untuk setiap node pool:

    gcloud container node-pools list \
        --cluster=CLUSTER_NAME \
        --format="table(name,config.serviceAccount)" \
        --location=COMPUTE_LOCATION
    

    Ganti kode berikut:

    Outputnya mirip dengan hal berikut ini:

    NAME          SERVICE_ACCOUNT
    default-pool  gke-cluster-sa@developer.gserviceaccount.com
    

    Jika node pool menggunakan akun layanan Compute Engine default, Anda dapat mendeskripsikannya menggunakan perintah berikut. Sebagai praktik terbaik, gunakan akun layanan kustom dengan hak istimewa minimal untuk node pool Anda. Akun layanan Compute Engine default berisi lebih dari izin minimum yang diperlukan untuk menjalankan cluster Anda.

    gcloud compute project-info describe --format="table(defaultServiceAccount)"
    
  2. Pastikan peran IAM memiliki izin yang memadai.

    Lihat izin yang terdapat dalam peran yang diberikan ke akun layanan tertentu:

    gcloud projects get-iam-policy PROJECT_ID \
        --flatten="bindings[]" \
        --filter="bindings.members=serviceAccount:SERVICE_ACCOUNT" \
        --format="table[box](bindings.role)"
    
  3. Berikan peran yang berisi izin logging.logEntries.create ke akun layanan. Anda dapat menggunakan peran yang telah ditetapkan atau membuat peran khusus.

Memverifikasi bahwa kuota API penulisan Cloud Logging belum tercapai

Pastikan Anda belum mencapai kuota penulisan API untuk Cloud Logging.

  1. Buka halaman Quotas di Konsol Google Cloud.

    Buka Quotas

  2. Filter tabel berdasarkan "Cloud Logging API".

  3. Pastikan Anda belum mencapai batas kuota.

Langkah selanjutnya

Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.