Memecahkan masalah penyiapan tingkat fleet

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

Menyelesaikan masalah penyiapan tingkat fleet

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

1. Validasi apakah GKE Identity Service diaktifkan

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

$ gcloud container fleet identity-service describe

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

Solusi: Untuk memastikan fitur ini diaktifkan untuk project Anda, lihat petunjuk dalam 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 tentukan untuk setiap cluster yang terdaftar ke fleet. GKE Identity Service dikonfigurasi di setiap cluster menggunakan konfigurasi ini.

  • membershipStates menampilkan 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 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, maka output-nya 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 GKE Identity Service dalam cluster, periksa hal-hal berikut:

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

    Jika konfigurasi untuk cluster yang sedang Anda pecahkan (misalnya, helloworld) berbeda di membershipSpecs dan membershipStates, kemungkinan Anda telah memperbarui konfigurasi untuk cluster tersebut. Tunggu beberapa menit agar GKE Identity Service dapat menerapkan perubahan ke cluster dan memeriksa statusnya kembali.

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

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

    Untuk mengatasi masalah tersebut, lihat Memecahkan masalah umum. Setelah mengikuti langkah-langkah pemecahan masalah yang diperlukan, tunggu beberapa menit, lalu periksa statusnya 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 mengetahui informasi tentang jenis cluster yang didukung, lihat jenis cluster atau hubungi dukungan Google Cloud untuk permintaan jenis cluster baru .

Terdapat protokol yang tidak didukung 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 level fleet untuk GKE Identity Service mendukung hal berikut:

Update konfigurasi di 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 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 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 tidak unik ada dalam konfigurasi identitas

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

Pesan error

configuration contains multiple identity providers of type 'google'

Solusi

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

Update 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 saat 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 seharusnya 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 otomatis diselesaikan dalam beberapa menit, setelah itu pod GKE Identity Service akan beralih ke status running.