Memecahkan masalah akun layanan di GKE


Halaman ini menunjukkan cara memecahkan masalah akun layanan Google Kubernetes Engine (GKE).

Memulihkan akun layanan default ke project Google Cloud Anda

Akun layanan default GKE, container-engine-robot, dapat tidak terikat dari project secara tidak sengaja. Peran Agen Layanan Kubernetes Engine (roles/container.serviceAgent) adalah peran Identity and Access Management (IAM) yang memberikan izin kepada akun layanan untuk mengelola resource cluster. Jika Anda menghapus binding peran ini dari akun layanan, akun layanan default akan terlepas dari project, sehingga Anda tidak dapat men-deploy aplikasi dan melakukan operasi cluster lainnya.

Untuk melihat apakah akun layanan dihapus dari project Anda, Anda dapat menggunakan konsol Google Cloud atau Google Cloud CLI.

Konsol

gcloud

  • Jalankan perintah berikut:

    gcloud projects get-iam-policy PROJECT_ID
    

    Ganti PROJECT_ID dengan project ID Anda.

Jika dasbor atau perintah tidak menampilkan container-engine-robot di antara akun layanan Anda, peran tidak terikat.

Untuk memulihkan binding peran Agen Layanan Kubernetes Engine (roles/container.serviceAgent), jalankan perintah berikut:

PROJECT_NUMBER=$(gcloud projects describe "PROJECT_ID" \
    --format 'get(projectNumber)') \
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:service-${PROJECT_NUMBER?}@container-engine-robot.iam.gserviceaccount.com" \
    --role roles/container.serviceAgent

Pastikan bahwa penetapan peran dipulihkan:

gcloud projects get-iam-policy $PROJECT_ID

Jika Anda melihat nama akun layanan beserta peran container.serviceAgent, artinya binding peran telah dipulihkan. Contoh:

- members:
  - serviceAccount:service-1234567890@container-engine-robot.iam.gserviceaccount.com
  role: roles/container.serviceAgent

Mengaktifkan akun layanan default Compute Engine

Akun layanan yang digunakan untuk node pool biasanya adalah akun layanan default Compute Engine. Jika akun layanan default ini dinonaktifkan, node Anda mungkin gagal didaftarkan ke cluster.

Untuk melihat apakah akun layanan dinonaktifkan di project Anda, Anda dapat menggunakan konsol Google Cloud atau gcloud CLI.

Konsol

gcloud

  • Jalankan perintah berikut:
gcloud iam service-accounts list  --filter="NAME~'compute' AND disabled=true"

Jika akun layanan dinonaktifkan, jalankan perintah berikut untuk mengaktifkan akun layanan:

gcloud iam service-accounts enable PROJECT_ID-compute@developer.gserviceaccount.com

Ganti PROJECT_ID dengan project ID Anda.

Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah pendaftaran node.

Error 400/403: Izin edit untuk akun tidak ada

Jika akun layanan dihapus, Anda mungkin melihat error izin edit yang hilang. Untuk mempelajari cara memecahkan masalah error ini, lihat Error 400/403: Izin edit untuk akun tidak ada.

Langkah selanjutnya

Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.