Halaman ini menunjukkan cara menyelesaikan masalah terkait penginstalan atau upgrade GKE di AWS.
Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.Kegagalan pembuatan cluster
Saat Anda membuat permintaan untuk membuat cluster, GKE di AWS akan menjalankan serangkaian pengujian pra-penerbangan terlebih dahulu untuk memverifikasi permintaan tersebut. Jika pembuatan cluster gagal, hal ini dapat disebabkan karena salah satu pengujian pra-peluncuran ini gagal atau karena langkah dalam proses pembuatan cluster itu sendiri tidak selesai.
Jika pengujian pra-peluncuran gagal, cluster Anda tidak akan membuat resource apa pun, dan
menampilkan informasi tentang error secara langsung kepada Anda. Misalnya, jika Anda mencoba
membuat cluster dengan nama invalid%%%name
, pengujian pre-flight untuk nama cluster
yang valid akan gagal dan permintaan akan menampilkan error berikut:
ERROR: (gcloud.container.aws.clusters.create) INVALID_ARGUMENT: must be
between 1-63 characters, valid characters are /[a-z][0-9]-/, should start with a
letter, and end with a letter or a number: "invalid%%%name",
field: aws_cluster_id
Pembuatan cluster juga dapat gagal setelah pengujian pra-penerbangan lulus. Proses ini dapat terjadi beberapa menit setelah pembuatan cluster dimulai, setelah GKE di AWS membuat resource di Google Cloud dan AWS. Dalam hal ini, resource AWS akan ada di project Google Cloud Anda dengan status yang ditetapkan ke ERROR
.
Untuk mendapatkan detail tentang kegagalan, jalankan perintah berikut:
gcloud container aws clusters describe CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--format "value(state, errors)"
Ganti kode berikut:
- CLUSTER_NAME dengan nama cluster yang statusnya sedang Anda kueri
- GOOGLE_CLOUD_LOCATION dengan nama region Google Cloud yang mengelola cluster AWS ini
Atau, Anda bisa mendapatkan detail tentang kegagalan pembuatan dengan menjelaskan resource Operation
yang terkait dengan panggilan API buat cluster.
gcloud container aws operations describe OPERATION_ID
Ganti OPERATION_ID dengan ID operasi yang membuat cluster. Jika tidak memiliki ID operasi untuk permintaan pembuatan cluster, Anda dapat mengambilnya dengan perintah berikut:
gcloud container aws operations list \
--location GOOGLE_CLOUD_LOCATION
Gunakan stempel waktu atau informasi terkait untuk mengidentifikasi operasi pembuatan cluster yang diminati.
Misalnya, jika pembuatan cluster Anda gagal karena peran AWS IAM yang tidak diberi izin tidak memadai, perintah ini dan hasilnya akan menyerupai contoh berikut:gcloud container aws operations describe b6a3d042-8c30-4524-9a99-6ffcdc24b370 \
--location GOOGLE_CLOUD_LOCATION
Output-nya mirip dengan berikut ini:
done: true
error:
code: 9
message: 'could not set deregistration_delay timeout for the target group: AccessDenied
User: arn:aws:sts::0123456789:assumed-role/foo-1p-dev-oneplatform/multicloud-service-agent
is not authorized to perform: elasticloadbalancing:ModifyTargetGroupAttributes
on resource: arn:aws:elasticloadbalancing:us-west-2:0123456789:targetgroup/gke-4nrk57tlyjva-cp-tcp443/74b57728e7a3d5b9
because no identity-based policy allows the elasticloadbalancing:ModifyTargetGroupAttributes
action'
metadata:
'@type': type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata
createTime: '2021-12-02T17:47:31.516995Z'
endTime: '2021-12-02T18:03:12.590148Z'
statusDetail: Cluster is being deployed
target: projects/123456789/locations/us-west1/awsClusters/aws-prod1
name: projects/123456789/locations/us-west1/operations/b6a3d042-8c30-4524-9a99-6ffcdc24b370
Operasi atau pembuatan cluster gagal dengan error otorisasi
Error yang menunjukkan kegagalan otorisasi biasanya menunjukkan bahwa salah satu dari dua peran AWS IAM yang Anda tentukan selama perintah pembuatan cluster dibuat dengan tidak benar. Misalnya, jika peran API tidak menyertakan izin elasticloadbalancing:ModifyTargetGroupAttributes
, pembuatan cluster akan gagal dengan pesan error yang menyerupai berikut ini:
ERROR: (gcloud.container.aws.clusters.create) could not set
deregistration_delay timeout for the target group: AccessDenied User:
arn:aws:sts::0123456789:assumed-role/cloudshell-user-dev-api-role/multicloud-
service-agent is not authorized to perform:
elasticloadbalancing:ModifyTargetGroupAttributes on resource:
arn:aws:elasticloadbalancing:us-east-1:0123456789:targetgroup/gke-u6au6c65e4iq-
cp-tcp443/be4c0f8d872bb60e because no identity-based policy allows the
elasticloadbalancing:ModifyTargetGroupAttributes action
Meskipun cluster tampaknya berhasil dibuat, peran IAM yang salah
ditetapkan dapat menyebabkan kegagalan selama operasi cluster di kemudian hari, seperti
saat menggunakan perintah seperti kubectl logs
.
Untuk mengatasi error otorisasi tersebut, pastikan bahwa kebijakan yang terkait dengan dua peran IAM yang Anda tentukan selama pembuatan cluster sudah benar. Secara khusus, pastikan cocok dengan deskripsi di bagian Membuat peran IAM AWS, lalu hapus dan buat ulang cluster. Deskripsi peran individual tersedia dalam Peran API dan Peran bidang kontrol.
Operasi atau pembuatan cluster gagal pada tahap health check
Terkadang, pembuatan cluster gagal selama health check dengan status Operasi yang terlihat seperti berikut:
done: true
error:
code: 4
message: Operation failed
metadata:
'@type': type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata
createTime: '2022-06-29T18:26:39.739574Z'
endTime: '2022-06-29T18:54:45.632136Z'
errorDetail: Operation failed
statusDetail: Health-checking cluster
target: projects/123456789/locations/us-west1/awsClusters/aws-prod1
name: projects/123456789/locations/us-west1/operations/8a7a3b7f-242d-4fff-b518-f361d41c6597
Kegagalan ini mungkin karena peran IAM tidak ada atau peran IAM yang ditetapkan salah. Anda dapat menggunakan AWS CloudTrail untuk mengekspos masalah IAM.
Contoh:
Jika peran API tidak menyertakan izin
kms:GenerateDataKeyWithoutPlaintext
untuk kunci KMS volume utama bidang kontrol, Anda akan melihat peristiwa berikut:"eventName": "AttachVolume", "errorCode": "Client.InvalidVolume.NotFound", "errorMessage": "The volume 'vol-0ff75940ce333aebb' does not exist.",
dan
"errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::0123456789:assumed-role/foo-1p-dev-oneplatform/multicloud-service-agent is not authorized to perform: kms:GenerateDataKeyWithoutPlaintext on resource: arn:aws:kms:us-west1:0123456789:key/57a61a45-d9c1-4038-9021-8eb08ba339ba because no identity-based policy allows the kms:GenerateDataKeyWithoutPlaintext action",
Jika peran bidang kontrol tidak menyertakan izin
kms:CreateGrant
untuk kunci KMS volume utama bidang kontrol, Anda akan melihat peristiwa berikut:"eventName": "AttachVolume", "errorCode": "Client.CustomerKeyHasBeenRevoked", "errorMessage": "Volume vol-0d022beb769c8e33b cannot be attached. The encrypted volume was unable to access the KMS key.",
dan
"errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::0123456789:assumed-role/foo-controlplane/i-0a11fae03eb0b08c1 is not authorized to perform: kms:CreateGrant on resource: arn:aws:kms:us-west1:0123456789:key/57a61a45-d9c1-4038-9021-8eb08ba339ba because no identity-based policy allows the kms:CreateGrant action",
Jika Anda tidak memberikan peran tertaut layanan bernama
AWSServiceRoleForAutoScaling
dengan izinkms:CreateGrant
untuk menggunakan kunci KMS volume root bidang kontrol, Anda akan melihat peristiwa berikut:"errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::0123456789:assumed-role/AWSServiceRoleForAutoScaling/AutoScaling is not authorized to perform: kms:CreateGrant on resource: arn:aws:kms:us-west1:0123456789:key/c77a3a26-bc91-4434-bac0-0aa963cb0c31 because no identity-based policy allows the kms:CreateGrant action",
Jika Anda tidak memberikan peran tertaut layanan bernama
AWSServiceRoleForAutoScaling
dengan izinkms:GenerateDataKeyWithoutPlaintext
untuk menggunakan kunci KMS volume root bidang kontrol, Anda akan melihat peristiwa berikut:"errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::0123456789:assumed-role/AWSServiceRoleForAutoScaling/AutoScaling is not authorized to perform: kms:GenerateDataKeyWithoutPlaintext on resource: arn:aws:kms:us-west1:0123456789:key/c77a3a26-bc91-4434-bac0-0aa963cb0c31 because no identity-based policy allows the kms:CreateGrant action",
Menunggu node untuk bergabung ke cluster
Jika Anda menerima error berikut saat membuat node pool, pastikan VPC Anda tidak menyertakan blok CIDR IPv4 sekunder terkait.
errorDetail: Operation failed
statusDetail: Waiting for nodes to join the cluster (0 out of 1 are ready)
Untuk memperbaiki masalah ini, buat grup keamanan yang mencakup semua blok CIDR, lalu tambahkan grup tersebut ke cluster Anda. Untuk informasi selengkapnya, lihat Node pool dalam blok CIDR Sekunder VPC.
Mendapatkan log sistem instance
Jika bidang kontrol atau instance kumpulan node tidak dimulai, Anda dapat memeriksa log sistemnya. Untuk memeriksa log sistem, lakukan langkah berikut:
- Buka konsol Instance AWS EC2.
- Klik Instances.
- Temukan instance menurut nama. GKE di AWS biasanya membuat instance bernama
CLUSTER_NAME-cp
untuk node bidang kontrol atauCLUSTER_NAME-np
untuk node kumpulan node. - Pilih Tindakan -> Pantau dan Pecahkan Masalah -> Dapatkan Log Sistem. Log sistem instance akan muncul.
Kegagalan update cluster
Saat Anda mengupdate cluster, sama seperti saat Anda membuat cluster baru, GKE di AWS akan menjalankan serangkaian uji pra-penerbangan terlebih dahulu untuk memverifikasi permintaan tersebut. Jika update cluster gagal, hal ini dapat disebabkan karena salah satu pengujian pra-peluncuran tersebut gagal, atau karena langkah dalam proses update cluster itu sendiri tidak selesai.
Jika pengujian pra-peluncuran gagal, cluster Anda tidak akan memperbarui resource apa pun, dan
menampilkan informasi tentang error secara langsung kepada Anda. Misalnya, jika Anda mencoba
memperbarui cluster untuk menggunakan pasangan kunci SSH dengan nama test_ec2_keypair
,
pengujian sebelum beroperasi akan mencoba mengambil pasangan kunci EC2 dan gagal, serta permintaan
menampilkan error berikut:
ERROR: (gcloud.container.aws.clusters.update) INVALID_ARGUMENT: key pair
"test_ec2_keypair" not found,
field: aws_cluster.control_plane.ssh_config.ec2_key_pair
Update cluster juga dapat gagal setelah pengujian pra-penerbangan lulus. Proses ini dapat terjadi beberapa menit setelah update cluster dimulai, dan status resource AWS di project Google Cloud Anda ditetapkan ke DEGRADED
.
Untuk mendapatkan detail tentang kegagalan dan operasi terkait, ikuti langkah-langkah yang dijelaskan dalam kegagalan pembuatan cluster.
Update cluster gagal saat memperbarui tag bidang kontrol
AWS update API mendukung pembaruan tag bidang kontrol. Untuk memperbarui tag, Anda memerlukan cluster dengan Kubernetes versi 1.24 atau yang lebih baru. Anda juga harus memastikan peran IAM AWS memiliki izin yang sesuai seperti yang tercantum di halaman cluster update untuk memperbarui tag bidang kontrol.
Error yang menunjukkan kegagalan autentikasi biasanya mengindikasikan bahwa Anda tidak menambahkan beberapa izin IAM. Misalnya, jika peran API tidak menyertakan izin ec2:DeleteTags
, update cluster untuk tag mungkin akan gagal dengan pesan error yang menyerupai berikut ini (<encoded_auth_failure_message>
disamarkan agar lebih singkat):
ERROR: (gcloud.container.aws.clusters.update) could not delete tags:
UnauthorizedOperation You are not authorized to perform this operation.
Encoded authorization failure message: <encoded_auth_failure_message>
Untuk men-debug pesan kegagalan yang dienkode sebelumnya, Anda dapat mengirim permintaan ke decode-authorization-message API AWS STS seperti yang ditunjukkan pada perintah berikut:
aws sts decode-authorization-message --encoded-message
<encoded_auth_failure_message> --query DecodedMessage --output
text | jq '.' | less
Outputnya mirip dengan hal berikut ini:
...
"principal": {
"id": "AROAXMEL2SCNPG6RCJ72B:iam-session",
"arn": "arn:aws:sts::1234567890:assumed-role/iam_role/iam-session"
},
"action": "ec2:DeleteTags",
"resource": "arn:aws:ec2:us-west-2:1234567890:security-group-rule/sgr-00bdbaef24a92df62",
...
Respons sebelumnya menunjukkan bahwa Anda tidak dapat melakukan tindakan ec2:DeleteTags
pada resource aturan grup keamanan EC2 di cluster AWS. Update Peran API Anda dan kirim ulang permintaan API update untuk memperbarui tag bidang kontrol.
Langkah selanjutnya
- Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.