View a markdown version of this page

Pemecahan Masalah Kemampuan EKS - Amazon EKS

Bantu meningkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan Masalah Kemampuan EKS

catatan

Kemampuan EKS sepenuhnya dikelola dan dijalankan di luar cluster Anda. Anda tidak memiliki akses langsung ke ruang nama pengontrol. Pemecahan masalah berfokus pada kesehatan kemampuan, status sumber daya, konfigurasi, dan log pengontrol. Anda dapat mengonfigurasi pengiriman log pengontrol untuk mendapatkan visibilitas ke dalam perilaku pengontrol. Lihat Akses log pengontrol Kemampuan EKS.

Pendekatan pemecahan masalah umum

Saat memecahkan masalah Kemampuan EKS, ikuti pendekatan umum ini:

  1. Periksa kesehatan kemampuan: Gunakan aws eks describe-capability untuk melihat status kemampuan dan masalah kesehatan

  2. Verifikasi status sumber daya: Periksa sumber daya Kubernetes (CRD) yang Anda buat untuk kondisi status dan peristiwa

  3. Tinjau log pengontrol: Jika pengiriman log dikonfigurasi, log pengontrol kueri untuk kesalahan dan detail rekonsiliasi

  4. Tinjau izin IAM: Pastikan Peran Kemampuan memiliki izin yang diperlukan

  5. Periksa konfigurasi: Verifikasi konfigurasi khusus kemampuan sudah benar

Gunakan log pengontrol untuk pemecahan masalah

Jika Anda telah mengonfigurasi pengiriman log pengontrol (lihatAkses log pengontrol Kemampuan EKS), Anda dapat menanyakan log untuk mengidentifikasi kesalahan rekonsiliasi, konflik sumber daya, dan masalah konfigurasi.

Kesalahan kueri di semua pengontrol

fields @timestamp, controller, message, error | filter level = "error" | sort @timestamp desc | limit 50

Filter log untuk pengontrol layanan ACK tertentu

Gunakan controllerGroup bidang untuk mengisolasi log dari pengontrol layanan ACK tertentu:

fields @timestamp, message, error | filter controllerGroup = "s3.services.k8s.aws" | filter level = "error" | sort @timestamp desc

Untuk memfilter lebih lanjut berdasarkan jenis sumber daya (misalnya, hanya SecurityGroup log dari pengontrol EC2):

fields @timestamp, message, error | filter controllerGroup = "ec2.services.k8s.aws" | filter controllerKind = "SecurityGroup" | sort @timestamp desc | limit 100

Filter log untuk aplikasi Argo CD tertentu

Gunakan application bidang untuk mengisolasi log untuk aplikasi CD Argo tertentu:

fields @timestamp, message, error | filter application = "my-application" | sort @timestamp desc | limit 100

Melacak rekonsiliasi untuk sumber daya tertentu

Gunakan reconcileID bidang untuk mengikuti siklus rekonsiliasi tunggal:

fields @timestamp, level, message, error | filter reconcileID = "your-reconcile-id" | sort @timestamp asc

Pola log umum yang menunjukkan masalah

  • Kesalahan rekonsiliasi berulang — Pengontrol tidak dapat mencapai status yang diinginkan untuk sumber daya. Periksa error bidang untuk detail seperti kegagalan izin IAM atau konfigurasi sumber daya yang tidak valid.

  • “Kesalahan rekonsiliasi” dengan kesalahan AWS API — Peran Kemampuan mungkin kehilangan izin untuk operasi AWS layanan tertentu. Tinjau pesan kesalahan dan perbarui kebijakan IAM yang sesuai.

  • Tidak ada entri log untuk sumber daya — Jika Anda tidak melihat log untuk sumber daya yang Anda harapkan untuk direkonsiliasi oleh pengontrol, verifikasi kemampuan tersebut ACTIVE dan bahwa sumber daya tersebut ada di namespace yang dapat diakses oleh kemampuan tersebut.

Periksa kesehatan kemampuan

Semua Kemampuan EKS memberikan informasi kesehatan melalui konsol EKS dan describe-capability API.

Konsol:

  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home #/cluster.

  2. Pilih nama cluster Anda.

  3. Pilih tab Observability.

  4. Pilih Monitor cluster.

  5. Pilih tab Kemampuan untuk melihat kesehatan dan status untuk semua kemampuan.

Tab Capabilities menunjukkan:

  • Nama dan jenis kemampuan

  • Status saat ini

  • Masalah kesehatan, dengan deskripsi

AWS CLI:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name

Respons meliputi:

  • status: Status kemampuan saat ini (CREATING,ACTIVE,UPDATING,DELETING,CREATE_FAILED,UPDATE_FAILED)

  • kesehatan: Informasi kesehatan termasuk masalah apa pun yang terdeteksi oleh kemampuan

Status kemampuan umum

MENCIPTAKAN: Kemampuan sedang disiapkan.

AKTIF: Kemampuan berjalan dan siap digunakan. Jika sumber daya tidak berfungsi seperti yang diharapkan, periksa status sumber daya dan izin IAM.

MEMPER BARUI: Perubahan konfigurasi sedang diterapkan. Tunggu status kembali keACTIVE.

CREATE_FAILED atau UP DATE_FAILED: Pengaturan atau pembaruan mengalami kesalahan. Periksa bagian kesehatan untuk detailnya. Penyebab umum:

  • Kebijakan kepercayaan peran IAM salah atau hilang

  • Peran IAM tidak ada atau tidak dapat diakses

  • Masalah akses cluster

  • Parameter konfigurasi tidak valid

Verifikasi status sumber daya Kubernetes

Kapabilitas EKS membuat dan mengelola Kubernetes Custom Resource Definitions (CRD) di cluster Anda. Saat memecahkan masalah, periksa status sumber daya yang Anda buat:

# List resources of a specific type kubectl get resource-kind -A # Describe a specific resource to see conditions and events kubectl describe resource-kind resource-name -n namespace # View resource status conditions kubectl get resource-kind resource-name -n namespace -o jsonpath='{.status.conditions}' # View events related to the resource kubectl get events --field-selector involvedObject.name=resource-name -n namespace

Kondisi status sumber daya memberikan informasi tentang:

  • Apakah sumber daya sudah siap

  • Kesalahan apa pun yang ditemui

  • Status rekonsiliasi saat ini

Tinjau izin IAM dan akses cluster

Banyak masalah kemampuan berasal dari masalah izin IAM atau konfigurasi akses cluster yang hilang. Verifikasi izin Peran Kemampuan dan entri akses cluster.

Periksa izin peran IAM

Verifikasi Peran Kemampuan memiliki izin yang diperlukan:

# List attached managed policies aws iam list-attached-role-policies --role-name my-capability-role # List inline policies aws iam list-role-policies --role-name my-capability-role # Get specific policy details aws iam get-role-policy --role-name my-capability-role --policy-name policy-name # View the role's trust policy aws iam get-role --role-name my-capability-role --query 'Role.AssumeRolePolicyDocument'

Kebijakan kepercayaan harus mengizinkan prinsi capabilities.eks.amazonaws.com pal layanan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Periksa Entri Akses EKS dan Kebijakan Akses

Semua kemampuan memerlukan Entri Akses EKS yang tepat dan Kebijakan Akses pada cluster tempat mereka beroperasi.

Verifikasi Entri Akses ada:

aws eks list-access-entries \ --cluster-name my-cluster \ --region region-code

Cari Peran Kemampuan ARN dalam daftar. Jika hilang, kemampuan tidak dapat mengakses cluster.

Periksa Kebijakan Akses yang dilampirkan pada entri:

aws eks list-associated-access-policies \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-capability-role \ --region region-code

Semua kemampuan memerlukan Kebijakan Akses yang sesuai:

  • ACK: Membutuhkan izin untuk membuat dan mengelola sumber daya Kubernetes

  • kro: Membutuhkan izin untuk membuat dan mengelola sumber daya Kubernetes

  • Argo CD: Membutuhkan izin untuk membuat dan mengelola Aplikasi, dan memerlukan Entri Akses pada cluster target jarak jauh untuk penerapan multi-cluster

Untuk penerapan multi-cluster Argo CD:

Jika menerapkan ke cluster jarak jauh, verifikasi Peran Kemampuan memiliki Entri Akses pada setiap cluster target:

# Check Access Entry on target cluster aws eks describe-access-entry \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::111122223333:role/argocd-capability-role \ --region region-code

Jika Entri Akses hilang pada cluster target, Argo CD tidak dapat menyebarkan aplikasi ke kluster target. Lihat Daftarkan kluster target untuk detail konfigurasi.

Capability-specific pemecahan masalah

Untuk panduan pemecahan masalah terperinci khusus untuk setiap jenis kemampuan:

Masalah umum di semua kemampuan

Kemampuan terjebak dalam keadaan CREATING

Jika kemampuan tetap dalam CREATING keadaan lebih lama dari yang diharapkan:

  1. Periksa kesehatan kemampuan untuk masalah tertentu di konsol (Observability > Monitor cluster > tab Cap abilities) atau menggunakan AWS CLI:

    aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name \ --query 'capability.health'
  2. Verifikasi peran IAM ada dan memiliki kebijakan kepercayaan yang benar

  3. Pastikan cluster Anda dapat diakses dan sehat

  4. Periksa masalah tingkat cluster yang mungkin mencegah pengaturan kemampuan

Sumber daya tidak dibuat atau diperbarui

Jika kemampuan ACTIVE tetapi sumber daya tidak dibuat atau diperbarui:

  1. Periksa status sumber daya untuk kondisi kesalahan

  2. Verifikasi izin IAM untuk AWS layanan tertentu (ACK) atau repositori (Argo CD)

  3. Periksa izin RBAC untuk membuat sumber daya yang mendasarinya (kro)

  4. Tinjau spesifikasi sumber daya untuk kesalahan validasi

Kesehatan kemampuan menunjukkan masalah

Jika describe-capability menunjukkan masalah kesehatan:

  1. Baca deskripsi masalah dengan saksama — mereka sering menunjukkan masalah spesifik

  2. Mengatasi akar penyebab (izin IAM, kesalahan konfigurasi, dll.)

  3. Kemampuan akan secara otomatis pulih setelah masalah diselesaikan

Langkah selanjutnya