Memecahkan masalah penyiapan tingkat armada

Dokumen ini memberikan petunjuk pemecahan masalah untuk penyiapan tingkat fleet Identity Service GKE.

Menyelesaikan masalah penyiapan tingkat armada

Untuk mengatasi masalah yang mungkin terjadi saat menyiapkan armada, ikuti petunjuk berikut:

1. Memvalidasi apakah Identity Service GKE diaktifkan

Untuk memvalidasi apakah Identity Service GKE diaktifkan untuk project Anda, jalankan perintah berikut:

$ gcloud container fleet identity-service describe

Jika tidak melihat error, Identity Service GKE telah diaktifkan dan Anda dapat melanjutkan ke petunjuk berikutnya.

Error: Identity Service Feature for project <your-project-id> is not enabled

Jika Anda melihat error ini, artinya Layanan Identitas GKE tidak diaktifkan dengan benar untuk fleet Anda saat menyiapkan fitur.

Solusi: Untuk memastikan fitur diaktifkan untuk project Anda, lihat petunjuk di Mengonfigurasi cluster untuk Identity Service GKE.

2. Melihat status GKE Identity Service

Untuk melihat status Identity Service GKE saat ini, jalankan perintah berikut:

$ gcloud container fleet identity-service describe

Output perintah ini memiliki dua bagian berikut:

  • membershipSpecs berisi konfigurasi penyedia identitas yang telah Anda tentukan untuk setiap cluster yang terdaftar ke fleet. Identity Service GKE dikonfigurasi di setiap cluster menggunakan konfigurasi ini.

  • membershipStates menampilkan status Identity Service GKE saat ini di setiap cluster, termasuk konfigurasi penyedia identitas yang relevan dan error yang mungkin terjadi selama penyiapan.

Untuk memecahkan masalah di cluster, di bagian membershipStates, telusuri cluster dan cari kolom berikut:

  • Kolom state: membershipStates -> <cluster-identifier> -> identityservice -> state
  • Kolom failureReason: membershipStates -> <cluster-identifier> -> identityservice -> failureReason.

Contoh

Jika Anda memiliki dua cluster helloworld dan foobar yang terdaftar ke fleet, output akan memiliki struktur berikut:

Identity Service Feature:
  createTime: '222-11-10T23:05:6.146566392Z'
  membershipSpecs:
    projects/<your-project-number>/locations/<location>/memberships/helloworld:
      identityservice:
        authMethods:
        - name: oidc
          oidcConfig:
            clientId: id
            issuerUri: https://accounts.google.com
            ... other fields
    projects/<your-project-number>/locations/<location>/memberships/foobar:
      identityservice:
        authMethods:
        - name: oidc
          oidcConfig:
            clientId: id
            issuerUri: https://accounts.google.com
            ... other fields 
  membershipStates:
    projects/<your-project-number>/location/<location>/memberships/helloworld:
      identityservice:
        failureReason: AIS feature does not support this cluster type
        memberConfig:
          authMethods:
          - name: oidc
            oidcConfig:
              clientId: id
              issuerUri: https://accounts.google.com
              ... other fields
        state: ERROR
      state:
        code: OK
        updateTime: '2022-11-11T20:39:59.556176650Z'
    projects/<your-project-number>/location/<location>/memberships/foobar:
      identityservice:
        memberConfig:
          authMethods:
          - name: oidc
            oidcConfig:
              clientId: id
              issuerUri: https://accounts.google.com
              ... other fields
        state: OK
      state:
        code: OK
        updateTime: '2022-11-11T20:39:59.556176650Z'

  name: projects/<project-number>/locations/global/features/identityservice
  updateTime: '2022-11-11T20:40:31.859321901Z'

3. Memverifikasi status cluster

Untuk memverifikasi status Identity Service GKE di cluster, periksa hal berikut:

  • Nilai state adalah OK: Ini menunjukkan bahwa tidak ada error yang terjadi saat mengonfigurasi Identity Service GKE di cluster dengan konfigurasi yang ditentukan di bagian membershipSpecs.

    Jika konfigurasi untuk cluster yang Anda pecahkan masalahnya (misalnya, helloworld) berbeda di membershipSpecs dan membershipStates, kemungkinan Anda telah memperbarui konfigurasi untuk cluster tersebut. Tunggu beberapa menit hingga Identity Service GKE menyebarkan perubahan ke cluster dan periksa statusnya lagi.

    Jika konfigurasi untuk cluster yang Anda pecahkan masalahnya (misalnya, helloworld) sama di membershipSpecs dan membershipStates, berarti Identity Service GKE telah dikonfigurasi dengan benar.

  • Kolom state adalah ERROR: Hal ini menunjukkan bahwa ada error saat mengonfigurasi Identity Service GKE di cluster dengan konfigurasi yang ditentukan di bagian membershipSpecs.

    Untuk mengatasi masalah tersebut, lihat Memecahkan masalah umum. Setelah mengikuti langkah-langkah pemecahan masalah yang diperlukan, tunggu beberapa menit, lalu periksa status lagi.

Memecahkan masalah umum

GKE Identity Service API tidak diaktifkan

Masalah ini terjadi jika GKE Identity Service API tidak diaktifkan.

Pesan error

anthosidentityservice.googleapis.com is not enabled

Solusi

Untuk mengaktifkan API, jalankan perintah berikut:

$ gcloud services enable anthosidentityservice.googleapis.com

Jenis cluster tidak didukung

Masalah ini terjadi saat Anda menggunakan jenis cluster yang tidak didukung.

Pesan error

GKE Identity Service feature does not support this cluster type

Solusi

Untuk informasi tentang jenis cluster yang didukung, lihat jenis cluster atau hubungi dukungan Google Cloud untuk permintaan jenis cluster baru .

Protokol yang tidak didukung ditemukan dalam konfigurasi

Masalah ini terjadi saat konfigurasi identitas yang telah Anda terapkan ke cluster berisi protokol yang tidak didukung.

Pesan error

unsupported protocol found in configuration, aborting reconciliation.

Solusi

Penyiapan tingkat fleet untuk Identity Service GKE mendukung hal berikut:

Perbarui konfigurasi di cluster sehingga hanya berisi protokol yang didukung di atas. Untuk mengedit konfigurasi, jalankan perintah berikut:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Ganti CLUSTER_KUBECONFIG dengan jalur ke file kubeconfig untuk cluster. Jika ada beberapa konteks dalam kubeconfig, konteks saat ini akan digunakan. Anda mungkin perlu mereset konteks saat ini ke cluster yang benar sebelum menjalankan perintah.

Cluster tidak memiliki konfigurasi identitas

Masalah ini terjadi jika tidak ada konfigurasi yang diterapkan ke cluster Anda.

Pesan error

Authentication configuration is not present for this membership

Solusi

Terapkan konfigurasi identitas ke cluster dengan mengikuti petunjuk di Mengonfigurasi cluster.

Izin IAM admin GKE Hub tidak ada

Masalah ini terjadi jika Anda tidak memiliki peran gkehub.admin di project yang Anda gunakan.

Pesan error

PERMISSION_DENIED: Permission 'gkehub.memberships.list' denied on '`projects//locations//memberships`'
PERMISSION_DENIED: Permission 'gkehub.features.get' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.delete' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.create' denied on '`projects//locations/global/features/identityservice`'

Solusi

Pemilik project dengan ID project_id harus menjalankan perintah berikut:

gcloud projects add-iam-policy-binding project_id --member=user:USER_ID --role=roles/gkehub.admin

Ganti USER_ID dengan Akun Google Anda.

Penyedia identitas yang tidak unik ada dalam konfigurasi identitas

Masalah ini terjadi jika konfigurasi Identity Service GKE untuk cluster memiliki nilai name yang sama untuk beberapa penyedia identitas.

Pesan error

Configuration contains multiple identity providers with the same name

Solusi

Ganti nama atau hapus entri duplikat dari konfigurasi Anda.

Beberapa penyedia jenis google ada dalam konfigurasi identitas

Masalah ini terjadi saat ClientConfig dikonfigurasi dengan beberapa konfigurasi jenis google.

Pesan error

configuration contains multiple identity providers of type 'google'

Solusi

Bagian spec/authentication dari konfigurasi dapat berisi maksimal satu konfigurasi jenis google.

Perbarui konfigurasi di cluster agar tidak memiliki lebih dari satu konfigurasi jenis google. Untuk mengedit konfigurasi, jalankan perintah berikut:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Ganti CLUSTER_KUBECONFIG dengan jalur ke file kubeconfig untuk cluster. Jika ada beberapa konteks dalam kubeconfig, konteks saat ini akan digunakan. Anda mungkin perlu mereset konteks saat ini ke cluster yang benar sebelum menjalankan perintah.

Error saat mengambil definisi resource kustom ClientConfig

Masalah ini terjadi saat terjadi error saat mengambil definisi resource kustom ClientConfig dari cluster.

Pesan error

error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON

Solusi

Gunakan detail yang ditampilkan di ERROR_REASON untuk menyelesaikan masalah ini.

Error saat mengupdate ClientConfig Identity Service GKE

Masalah ini terjadi saat ada error dalam mengupdate ClientConfig di cluster.

Pesan error

Error updating AIS ClientConfig: ERROR_REASON

Solusi

Gunakan detail yang ditampilkan di ERROR_REASON> untuk menyelesaikan masalah ini.

ClientConfig tidak ada di cluster

Masalah ini terjadi jika ClientConfig, yang harus dibuat saat menginstal Identity Service GKE, tidak ada di cluster. ClientConfig yang tidak ada menunjukkan bahwa Identity Service GKE belum diinstal dengan benar di cluster.

Pesan error

ClientConfig CR not present, expected to be created when AIS was installed

Solusi

Resource Identity Service GKE di cluster mungkin telah dihapus secara tidak sengaja. Anda dapat mencoba membuat cluster baru. Jika Anda melihat error yang sama di cluster baru, hubungi administrator cluster atau dukungan Google Cloud.

Pod GKE Identity Service tidak dimulai

Masalah ini terjadi saat pod Identity Service GKE berada dalam status pending.

Pesan error

GKE Identity Service pod is not running (pending)

Solusi

Masalah ini akan otomatis teratasi dalam beberapa menit, setelah itu pod Identity Service GKE akan beralih ke status running.