Dokumen ini memberikan panduan pemecahan masalah untuk masalah akses pengguna saat Anda menggunakan penyedia identitas pihak ketiga untuk mengautentikasi ke cluster anggota armada.
gcloud anthos create-login-config gagal mendapatkan clientconfig
Masalah ini terjadi dalam salah satu kasus berikut:
- File kubeconfig yang diteruskan ke
gcloud anthos create-login-configsalah. - Resource kustom ClientConfig tidak ada di cluster (autentikasi pihak ketiga tidak dikonfigurasi di cluster).
Pesan error
failed to get clientconfig default in namespace kube-public
Solusi
Untuk mengatasi masalah ini, lakukan langkah berikut:
- Pastikan Anda memiliki file kubeconfig yang benar untuk cluster Anda.
Untuk memverifikasi apakah resource kustom ClientConfig ada di cluster, jalankan perintah berikut:
kubectl --kubeconfig KUBECONFIG get clientconfig default -n kube-public
Jika ClientConfig tidak ada di cluster, instal dan konfigurasi ClientConfig di cluster. Untuk mengetahui informasi selengkapnya tentang opsi penyiapan cluster, lihat Opsi penyiapan untuk cluster.
gcloud anthos create-login-config gagal karena nama cluster duplikat
Masalah ini terjadi jika Anda mencoba membuat konfigurasi login untuk cluster ke dalam file yang sudah berisi konfigurasi login untuk cluster ini.
Pesan error
error merging with file FILENAME because FILENAME contains a
cluster with the same name as the one read from KUBECONFIG.
Solusi
Untuk mengatasi masalah ini, gunakan tanda --output untuk menentukan file tujuan baru.
Jika Anda tidak memberikan --output, data konfigurasi login ini akan ditulis ke
file bernama kubectl-anthos-config.yaml di direktori saat ini.
gcloud anthos auth login gagal dengan proxyconnect tcp
Masalah ini terjadi jika ada error dalam konfigurasi variabel lingkungan https_proxy atau HTTPS_PROXY. Jika ada https:// yang ditentukan dalam
variabel lingkungan, library klien HTTP GoLang mungkin gagal jika
proxy dikonfigurasi untuk menangani koneksi HTTPS menggunakan protokol lain seperti
SOCK5.
Pesan error
proxyconnect tcp: tls: first record does not look like a TLS handshake
Solusi
Untuk mengatasi masalah ini, ubah variabel lingkungan https_proxy dan HTTPS_PROXY agar tidak menyertakan https:// prefix. Di Windows, ubah variabel lingkungan sistem.
Misalnya, ubah nilai variabel lingkungan https_proxy
dari https://webproxy.example.com:8000 menjadi
webproxy.example.com:8000.
Akses cluster gagal saat menggunakan kubeconfig yang dibuat oleh gcloud anthos auth login
Masalah ini terjadi saat server Kubernetes API tidak dapat mengizinkan pengguna karena salah satu alasan berikut:
- Terjadi error dalam konfigurasi yang digunakan untuk login dengan perintah
gcloud anthos auth login. - Kebijakan RBAC yang diperlukan salah atau tidak ada untuk pengguna.
Pesan error
Unauthorized
Solusi
Untuk mengatasi masalah ini, lakukan langkah berikut:
Verifikasi konfigurasi yang digunakan untuk login.
Konfigurasi OIDC
Bagian
authentication.oidcdalam file konfigurasi cluster pengguna memiliki kolomgroupdanusernameyang digunakan untuk menyetel tanda--oidc-group-claimdan--oidc-username-claimdi server Kubernetes API. Saat diberi token identitas pengguna, server API akan meneruskan token tersebut ke cluster, yang akan menampilkangroup-claimdanusername-claimyang diekstrak kembali ke server API. Server API menggunakan respons untuk memverifikasi bahwa grup atau pengguna yang sesuai memiliki izin yang benar.Verifikasi bahwa set klaim untuk
groupdanuserdi bagianauthentication.oidcfile konfigurasi cluster ada di token ID.Verifikasi kebijakan RBAC yang diterapkan.
Untuk mempelajari cara menyiapkan kebijakan RBAC yang benar, lihat Menyiapkan role-based access control (RBAC).
RBAC untuk grup tidak berfungsi untuk penyedia OIDC
Verifikasi apakah token ID memiliki informasi grup
Setelah Anda menjalankan perintah
gcloud anthos auth loginuntuk memulai alur autentikasi OIDC, Token ID akan disimpan dalam filekubeconfigdi kolomid-token. Gunakan jwt.io untuk mendekode token ID dan verifikasi apakah token tersebut berisi informasi grup pengguna seperti yang diharapkan.Jika token ID tidak memiliki informasi grup pengguna, konfigurasi penyedia OIDC dengan benar untuk menampilkan informasi grup sesuai dokumentasi penyedia OIDC Anda. Misalnya, jika Anda menggunakan konfigurasi OIDC penyedia Identitas Okta, ikuti dokumentasi penyedia Identitas Okta untuk mengonfigurasi grup dalam token ID.
Jika token ID memiliki informasi grup, verifikasi apakah kunci informasi grup dalam token ID cocok dengan kolom
groupsClaimyang dikonfigurasi di bagianoidc.Misalnya, jika token ID berisi informasi grup dalam kunci
groups:"groups" : ["group1", "group2" ...]maka nilai kolom
groupsClaimharusgroupsdi bagianoidc.Setelah mengubah konfigurasi di bagian
oidc, pastikan Anda menjalankan petunjuk yang tercantum di Menyiapkan akses pengguna dan Mengakses cluster lagi.
Memecahkan masalah penyedia identitas
Jika Anda mengalami masalah saat menggunakan OIDC atau LDAP dengan cluster, ikuti langkah-langkah di bagian ini untuk memecahkan masalah ini dan membantu menentukan apakah ada masalah dengan konfigurasi penyedia identitas Anda.
Aktifkan log debug
Untuk membantu memecahkan masalah terkait identitas di cluster Anda, aktifkan
log debug untuk Pod di Deployment ais.
Patch cluster yang ada dengan
kubectl patch:kubectl patch deployment ais \ -n anthos-identity-service --type=json \ -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--vmodule=cloud/identity/hybrid/charon/*=LOG_LEVEL"}]' \ --kubeconfig KUBECONFIGGanti kode berikut:
LOG_LEVEL: Untuk log yang paling verbose, tetapkan nilai ini ke level3saat memecahkan masalah.KUBECONFIG: Jalur ke file kubeconfig cluster pengguna Anda.
Periksa log container
Tinjau konten log penampung untuk menemukan error atau peringatan.
Untuk meninjau log, gunakan
kubectl logs:kubectl logs -f -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGGanti
KUBECONFIGdengan jalur ke file kubeconfig cluster pengguna Anda.
Mulai ulang Pod
Jika log container menunjukkan masalah, mulai ulang Pod.
Untuk memulai ulang Pod, hapus Pod yang ada. Pod baru akan otomatis dibuat sebagai pengganti.
kubectl delete pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGGanti
KUBECONFIGdengan jalur ke file kubeconfig cluster pengguna Anda.
Memecahkan masalah konektivitas ke penyedia identitas
Jika Pod tampaknya berjalan dengan benar, uji konektivitas ke penyedia identitas jarak jauh.
Mulai Pod busybox di namespace yang sama:
kubectl run curl --image=radial/busyboxplus:curl \ -n anthos-identity-service -- sleep 3000 \ --kubeconfig KUBECONFIGGanti
KUBECONFIGdengan jalur ke file kubeconfig cluster pengguna Anda.Untuk memeriksa apakah Anda dapat mengambil URL penemuan, jalankan perintah
curldi Pod busybox:kubectl exec pod/curl -n anthos-identity-service -- \ curl ISSUER_URL \ --kubeconfig KUBECONFIGGanti kode berikut:
ISSUER_URL: URL penerbit penyedia identitas Anda.KUBECONFIG: Jalur ke file kubeconfig cluster pengguna Anda.
Respons yang berhasil adalah hasil JSON dengan endpoint penyedia identitas yang mendetail.
Jika perintah sebelumnya tidak menampilkan hasil yang diharapkan, hubungi administrator penyedia identitas Anda untuk mendapatkan bantuan tambahan.
Login LDAP tidak berfungsi untuk cluster admin Google Distributed Cloud
LDAP saat ini hanya didukung untuk cluster pengguna Google Distributed Cloud.