Memecahkan masalah penyiapan tingkat fleet

Dokumen ini berisi petunjuk pemecahan masalah untuk penyiapan tingkat perangkat GKE Identity Service.

Menyelesaikan masalah penyiapan tingkat fleet

Untuk menyelesaikan masalah yang mungkin terjadi saat menyiapkan perangkat Anda, ikuti petunjuk berikut:

1. Memvalidasi apakah GKE Identity Service diaktifkan

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

$ gcloud container fleet identity-service describe

Jika Anda tidak melihat error apa pun, GKE Identity Service 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, hal itu menunjukkan bahwa GKE Identity Service tidak diaktifkan dengan benar untuk fleet Anda saat menyiapkan fitur tersebut.

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

2. Melihat status GKE Identity Service

Untuk melihat status GKE Identity Service 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 untuk setiap cluster yang didaftarkan ke fleet. Layanan Identitas GKE dikonfigurasi pada setiap cluster menggunakan konfigurasi ini.

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

Untuk memecahkan masalah dalam 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 di fleet, outputnya 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 GKE Identity Service dalam cluster, periksa hal berikut:

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

    Jika konfigurasi cluster yang sedang Anda pecahkan (misalnya helloworld) berbeda di membershipSpecs dan membershipStates, kemungkinan Anda telah memperbarui konfigurasi untuk cluster tersebut. Tunggu beberapa menit hingga GKE Identity Service menerapkan perubahan pada cluster dan periksa status kembali.

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

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

    Untuk mengatasi masalah ini, lihat Memecahkan masalah umum. Setelah mengikuti 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 perangkat untuk GKE Identity Service mendukung hal berikut:

Update konfigurasi pada cluster agar 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 saat 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 saat Anda tidak memiliki peran gkehub.admin pada project yang digunakan.

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 non-unik ada dalam konfigurasi identitas

Masalah ini terjadi saat konfigurasi GKE Identity Service 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 jika ClientConfig dikonfigurasi dengan beberapa konfigurasi jenis google.

Pesan error

configuration contains multiple identity providers of type 'google'

Solusi

Bagian spec/authentication pada 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.

Terjadi 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 mengatasi masalah ini.

Terjadi error saat mengupdate GKE Identity Service ClientConfig

Masalah ini terjadi saat terjadi error dalam memperbarui ClientConfig di cluster.

Pesan error

Error updating AIS ClientConfig: ERROR_REASON

Solusi

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

ClientConfig tidak ada di cluster

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

Pesan error

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

Solusi

Resource GKE Identity Service 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 Anda atau dukungan Google Cloud.

Pod GKE Identity Service belum dimulai

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

Pesan error

GKE Identity Service pod is not running (pending)

Solusi

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