Memecahkan masalah dengan kemampuan ACK - Amazon EKS

View a markdown version of this page

Memecahkan masalah dengan kemampuan ACK - 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.

Memecahkan masalah dengan kemampuan ACK

catatan

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

Kemampuan aktif tetapi sumber daya tidak dibuat

Jika kemampuan ACK Anda menunjukkan ACTIVE status tetapi sumber daya tidak dibuat AWS, periksa kesehatan kemampuan, status sumber daya, dan izin IAM.

Periksa kesehatan kemampuan:

Anda dapat melihat masalah kesehatan dan status kemampuan di konsol EKS atau menggunakan AWS CLI.

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.

AWS CLI:

# View capability status and health aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack # Look for issues in the health section

Penyebab umum:

  • Izin IAM hilang: Peran Kemampuan tidak memiliki izin untuk layanan AWS

  • Namespace yang salah: Sumber daya dibuat di namespace tanpa benar IAMRoleSelector

  • Spesifikasi sumber daya tidak valid: Periksa kondisi status sumber daya untuk kesalahan validasi

  • Pelambatan API: B AWS atas tingkat API tercapai

  • Webhook penerimaan: Webhook penerimaan memblokir pengontrol dari menambal status sumber daya

Periksa status sumber daya:

# Describe the resource to see conditions and events kubectl describe bucket my-bucket -n default # Look for status conditions kubectl get bucket my-bucket -n default -o jsonpath='{.status.conditions}' # View resource events kubectl get events --field-selector involvedObject.name=my-bucket -n default

Verifikasi izin IAM:

# View the Capability Role's policies aws iam list-attached-role-policies --role-name my-ack-capability-role aws iam list-role-policies --role-name my-ack-capability-role # Get specific policy details aws iam get-role-policy --role-name my-ack-capability-role --policy-name policy-name

Sumber daya dibuat di AWS tetapi tidak ditampilkan di Kubernetes

ACK hanya melacak sumber daya yang dibuatnya melalui manifes Kubernetes. Untuk mengelola AWS sumber daya yang ada dengan ACK, gunakan fitur adopsi.

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: existing-bucket annotations: services.k8s.aws/adoption-policy: "adopt-or-create" spec: name: my-existing-bucket-name

Untuk informasi lebih lanjut tentang adopsi sumber daya, lihatKonsep ACK.

Cross-account sumber daya tidak dibuat

Jika sumber daya tidak dibuat di AWS akun target saat menggunakan Pemilih Peran IAM, verifikasi hubungan kepercayaan dan IAMRoleSelector konfigurasi.

Verifikasi hubungan kepercayaan:

# Check the trust policy in the target account role aws iam get-role --role-name cross-account-ack-role --query 'Role.AssumeRolePolicyDocument'

Kebijakan kepercayaan harus mengizinkan Peran Kemampuan akun sumber untuk mengasumsikannya.

Konfir IAMRoleSelector masikan konfigurasi:

# List IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Describe specific selector kubectl describe iamroleselector my-selector

Verifikasi penyelarasan namespace:

IAMRoleSelectors adalah sumber daya bercakupan cluster tetapi menargetkan ruang nama tertentu. Pastikan sumber daya ACK Anda berada di namespace yang cocok dengan IAMRoleSelector pemilih namespace:

# Check resource namespace kubectl get bucket my-cross-account-bucket -n production # List all IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Check which namespace the selector targets kubectl get iamroleselector my-selector -o jsonpath='{.spec.namespaceSelector}'

Periksa IAMRoleSelected kondisi:

Verifikasi bahwa berhasil IAMRoleSelector dicocokkan dengan sumber daya Anda dengan memeriksa ACK.IAMRoleSelected kondisi:

# Check if IAMRoleSelector was matched kubectl get bucket my-cross-account-bucket -n production -o jsonpath='{.status.conditions[?(@.type=="ACK.IAMRoleSelected")]}'

Jika kondisinya ada False atau hilang, IAMRoleSelector pemilih namespace tidak cocok dengan namespace sumber daya. Pastikan pemilih namespaceSelector cocok dengan label namespace sumber daya Anda.

Periksa izin Peran Kemampuan:

Kebutuhan Peran Kemampuan sts:AssumeRole dan sts:TagSession izin untuk peran akun target:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": "arn:aws:iam::444455556666:role/cross-account-ack-role" } ] }

Untuk konfigurasi lintas-akun terperinci, lihatKonfigurasikan izin ACK.

Langkah selanjutnya