View a markdown version of this page

Memecahkan Masalah Kemampuan EKS - Amazon EKS

Bantu tingkatkan 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 Edit halaman ini pada GitHub tautan 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.

Memecahkan 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 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 mengetahui kondisi dan peristiwa status

  3. Tinjau log pengontrol: Jika pengiriman log dikonfigurasi, pengontrol kueri mencatat 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 melakukan kueri 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

Lacak 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 layanan tertentu AWS . 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 kemampuannya ACTIVE dan bahwa sumber daya ada di namespace yang dapat diakses oleh kapabilitas.

Periksa kemampuan kesehatan

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 Kemampuan 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 yang terdeteksi oleh kemampuan

Status kemampuan umum

MENCIPTAKAN: Kemampuan sedang diatur.

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

MEMPERBARUI: Perubahan konfigurasi sedang diterapkan. Tunggu statusnya kembaliACTIVE.

CREATE_FAILED atau UPDATE_FAILED: Penyiapan atau pembaruan mengalami kesalahan. Periksa bagian kesehatan untuk detailnya. Penyebab umum:

  • Kebijakan kepercayaan peran IAM salah atau tidak ada

  • Peran IAM tidak ada atau tidak dapat diakses

  • Masalah akses klaster

  • Parameter konfigurasi tidak valid

Verifikasi status sumber daya Kubernetes

Kemampuan EKS membuat dan mengelola Kubernetes Custom Resource Definitions (CRD) di klaster 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

  • Setiap kesalahan yang ditemui

  • Negara rekonsiliasi saat ini

Tinjau izin IAM dan akses klaster

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

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 memungkinkan kepala capabilities.eks.amazonaws.com 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 dan Kebijakan Akses yang tepat di klaster 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 kluster target jarak jauh untuk penerapan multi-cluster

Untuk penerapan multi-cluster Argo CD:

Jika menerapkan ke klaster jarak jauh, verifikasi Peran Kemampuan memiliki Entri Akses pada setiap klaster 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 sana. 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 status CREATING

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

  1. Periksa kesehatan kemampuan untuk masalah spesifik di konsol (tab Observability> Monitor cluster > Capabilities) atau gunakan 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 klaster Anda dapat diakses dan sehat

  4. Periksa masalah tingkat cluster yang mungkin mencegah pengaturan kemampuan

Sumber daya tidak dibuat atau diperbarui

Jika kemampuannya 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 dasar (kro)

  4. Tinjau spesifikasi sumber daya untuk kesalahan validasi

Kesehatan kemampuan menunjukkan masalah

Jika describe-capability menunjukkan masalah kesehatan:

  1. Baca deskripsi masalah dengan hati-hati—mereka sering menunjukkan masalah spesifik

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

  3. Kemampuan akan pulih secara otomatis setelah masalah teratasi

Langkah selanjutnya