Halaman ini menunjukkan cara menyelesaikan masalah umum terkait GKE di AWS.
Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.Pesan error umum
Bagian berikut menjelaskan penyebab dan solusi untuk beberapa pesan error umum.
Server tidak memiliki resource
Error seperti error: the server doesn't have a resource type "services"
dapat terjadi jika cluster tidak memiliki kumpulan node yang berjalan, atau gateway Connect tidak dapat terhubung ke kumpulan node. Untuk memeriksa status kumpulan node Anda, jalankan perintah berikut:
gcloud container aws node-pools list \
--cluster-name CLUSTER_NAME \
--location LOCATION
Ganti kode berikut:
CLUSTER_NAME
: nama cluster AndaLOCATION
: lokasi Google Cloud yang mengelola cluster Anda
Outputnya mencakup status kumpulan node cluster Anda. Jika Anda tidak memiliki kumpulan node yang tercantum, Create a node pool.
Pengguna terlarang
Error berikut terjadi jika nama pengguna tidak memiliki akses administrator ke cluster:
Error from server (Forbidden): users "administrator@example.com" is forbidden:
User "system:serviceaccount:gke-connect:connect-agent-sa" cannot impersonate
resource "users" in API group "" at the cluster scope
Anda dapat mengonfigurasi pengguna tambahan dengan meneruskan flag --admin-users
saat membuat cluster.
Jika Anda menggunakan gateway Connect dan tidak dapat terhubung ke cluster, coba langkah-langkah berikut:
Memperoleh pengguna yang diotorisasi untuk cluster Anda.
gcloud container aws clusters describe CLUSTER_NAME \ --format 'value(authorization.admin_users)'
Ganti
CLUSTER_NAME
dengan nama cluster Anda.Output-nya mencakup nama pengguna dengan akses administrator ke cluster. Contoh:
{'username': 'administrator@example.com'}
Dapatkan nama pengguna yang saat ini diautentikasi dengan Google Cloud CLI.
gcloud config get-value account
Outputnya mencakup akun yang diautentikasi dengan Google Cloud CLI. Jika output
gcloud containers aws clusters describe
dangcloud config get-value account
tidak cocok, jalankangcloud auth login
dan autentikasi sebagai nama pengguna dengan akses admin ke cluster.
Masalah terkait perintah kubectl
Bagian berikut memberikan panduan tentang cara menyelesaikan masalah dengan
perintah kubectl
yang tidak responsif atau gagal.
Perintah kubectl berhenti merespons
Jika cluster Anda menjalankan versi Kubernetes yang lebih lama dari 1.25 dan perintah kubectl
tidak responsif atau waktu habis, alasan paling umum adalah Anda belum membuat kumpulan node. Secara default, GKE di AWS menghasilkan file kubeconfig
yang menggunakan gateway Connect sebagai endpoint yang dapat dijangkau internet.
Agar berhasil, Deployment gke-connect-agent
harus berjalan di
kumpulan node pada cluster.
Untuk mengetahui informasi diagnostik selengkapnya, jalankan perintah berikut:
kubectl cluster-info -v=9
Jika tidak ada kumpulan node yang berjalan, Anda akan melihat permintaan ke
connectgateway.googleapis.com
gagal dengan error 404
cannot find active connections for cluster
.
Untuk cluster dengan versi Kubernetes 1.25 atau yang lebih baru, gke-connect-agent
berjalan di bidang kontrol, dan kumpulan node tidak diperlukan. Jika perintah kubectl
tidak responsif, periksa log komponen bidang kontrol dengan Cloud Logging.
Perintah kubectl exec, Attach, dan port-forward gagal
Perintah kubectl exec
, kubectl attach
, dan kubectl port-forward
mungkin gagal dengan pesan error: unable to upgrade connection
saat menggunakan gateway Connect. Ini adalah batasan saat menggunakan gateway Connect sebagai endpoint Kubernetes API Server Anda.
Untuk mengatasi hal ini, gunakan kubeconfig
yang menentukan endpoint pribadi cluster. Untuk mengetahui petunjuk cara mengakses cluster melalui endpoint pribadinya, lihat Mengonfigurasi akses cluster untuk kubectl.
Log kubectl gagal dengan error jarak jauh: tls: error internal
Masalah ini mungkin terjadi saat Peran Control Plane API tidak memiliki izin. Misalnya, hal ini dapat terjadi jika peran AWS Anda tidak memiliki izin ec2:DescribeDhcpOptions
. Dalam hal ini, permintaan penandatanganan
sertifikat dari node tidak dapat disetujui, dan node pekerja tidak memiliki sertifikat
yang valid.
Untuk mengetahui apakah ini masalahnya, Anda dapat memeriksa apakah ada Permintaan Penandatanganan Sertifikat yang tertunda dan belum disetujui dengan perintah ini:
kubectl get csr
Untuk mengatasi masalah ini, verifikasi bahwa peran AWS Anda cocok dengan persyaratan.
Pemecahan masalah kubectl umum
Jika Anda menggunakan gateway Connect:
Pastikan Anda telah mengaktifkan gateway Connect di project Google Cloud:
gcloud services enable connectgateway.googleapis.com
Untuk cluster dengan versi Kubernetes sebelum 1.25, pastikan Anda memiliki setidaknya satu kumpulan node Linux yang berjalan dan
gke-connect-agent
juga berjalan. Untuk mengetahui detailnya, lihat Memecahkan masalah koneksi cluster.Untuk cluster dengan Kubernetes versi 1.25 atau yang lebih baru, periksa log
gke-connect-agent
dengan Cloud Logging.
Layanan Kubernetes (LoadBalancer) atau Kubernetes Ingress tidak berfungsi
Jika Load Balancer Elastic AWS (ELB/NLB/ALB) telah dibuat, tetapi tidak beroperasi seperti yang Anda harapkan, hal ini mungkin terjadi karena masalah pada pemberian tag subnet. Untuk mengetahui informasi selengkapnya, lihat Subnet load balancer.
Pod di node Arm mengalami error
Masalah berikut terjadi saat Anda men-deploy Pod pada node Arm, tetapi image container tidak dibuat untuk arsitektur Arm.
Untuk mengidentifikasi masalah, selesaikan tugas-tugas berikut:
Dapatkan status Pod Anda:
kubectl get pods
Dapatkan log untuk Pod yang mengalami error:
kubectl logs POD_NAME
Ganti
POD_NAME
dengan nama Pod yang mengalami error.Pesan error di log Pod Anda mirip dengan pesan berikut:
exec ./hello-app: exec format error
Untuk mengatasi masalah ini, pastikan image container Anda mendukung arsitektur Arm. Sebagai praktik terbaik, buat beberapa gambar arsitektur.
Tidak dapat menghapus cluster
Jika Anda menerima error yang serupa dengan yang berikut ini saat mencoba menghapus cluster, peran GKE Multi-Cloud API Anda mungkin tidak ada:
ERROR: (gcloud.container.aws.clusters.delete) FAILED_PRECONDITION: Could not
assume role
"arn:aws:iam::ACCOUNT_NUMBER:role/gke123456-anthos-api-role"
through service account
"service-123456789@gcp-sa-gkemulticloud.iam.gserviceaccount.com".
Please make sure the role has a trust policy allowing the GCP service agent to
assume it: WebIdentityErr failed to retrieve credentials
Untuk memperbaiki masalah ini, ikuti langkah-langkah di Membuat peran GKE Multi-Cloud API. Saat Anda membuat ulang peran dengan nama dan izin yang sama, Anda dapat mencoba kembali perintah tersebut.
Langkah selanjutnya
- Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.