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

Topik ini memberikan panduan pemecahan masalah untuk Kemampuan EKS untuk ACK, termasuk pemeriksaan kesehatan kemampuan, verifikasi status sumber daya, dan masalah izin IAM.

catatan

Kemampuan EKS sepenuhnya dikelola dan dijalankan di luar cluster Anda. Anda tidak memiliki akses ke log pengontrol atau ruang nama pengontrol. 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/rumah#/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 Selector yang tepat IAMRole

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

  • Pelambatan API: Batas laju AWS API tercapai

  • Webhooks penerimaan: Webhook masuk 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 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.

Sumber daya lintas akun tidak dibuat

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

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 memungkinkan Peran Kemampuan akun sumber untuk mengasumsikannya.

Konfirmasikan konfigurasi IAMRole Selector:

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

Verifikasi penyelarasan namespace:

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

# 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 Kondisi IAMRole yang dipilih:

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

# 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, IAMRole pemilih namespace Selector tidak cocok dengan namespace sumber daya. Verifikasi bahwa pemilih namespaceSelector cocok dengan label namespace sumber daya Anda.

Periksa izin Peran Kemampuan:

Peran Kemampuan memerlukan sts:AssumeRole izin untuk peran akun target:

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

Untuk konfigurasi lintas akun yang mendetail, lihatKonfigurasikan izin ACK.

Langkah selanjutnya