

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 ACK 功能的問題進行故障診斷
<a name="ack-troubleshooting"></a>

本主題提供 ACK 的 EKS 功能疑難排解指引，包括功能運作狀態檢查、資源狀態驗證和 IAM 許可問題。

**注意**  
EKS 功能是完全受管的，並在叢集外部執行。您無法存取控制器日誌或控制器命名空間。故障診斷著重於功能運作狀態、資源狀態和 IAM 組態。

## 功能是 ACTIVE，但資源尚未建立
<a name="_capability_is_active_but_resources_arent_being_created"></a>

如果您的 ACK 功能顯示`ACTIVE`狀態，但未在其中建立資源 AWS，請檢查功能運作狀態、資源狀態和 IAM 許可。

 **檢查功能運作狀態**：

您可以在 EKS 主控台或使用 AWS CLI 檢視功能運作狀態和狀態問題。

 **主控台**：

1. 在以下網址開啟 Amazon EKS 主控台：https://console.aws.amazon.com/eks/home\$1/clusters。

1. 選取您的叢集名稱。

1. 選擇**可觀測性**索引標籤。

1. 選擇**監控叢集**。

1. 選擇**功能**索引標籤以檢視所有功能的運作狀態和狀態。

 ** 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
```

 **常見原因**：
+  **IAM 許可遺失**：功能角色缺少 AWS 服務的許可
+  **命名空間錯誤**：在命名空間中建立的資源沒有適當的 IAMRoleSelector
+  **無效的資源規格**：檢查資源狀態條件是否有驗證錯誤
+  **API 限流**：達到 AWS API 速率限制
+  **許可 Webhook**：許可 Webhook 封鎖控制器修補資源狀態

 **檢查資源狀態**：

```
# 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
```

 **驗證 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
```

## 在 中建立 AWS 但未在 Kubernetes 中顯示的資源
<a name="resources_created_in_shared_aws_but_not_showing_in_kubernetes"></a>

ACK 只會追蹤透過 Kubernetes 資訊清單建立的資源。若要使用 ACK 管理現有 AWS 資源，請使用採用功能。

```
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
```

如需資源採用的詳細資訊，請參閱[ACK 概念](ack-concepts.md)。

## 未建立跨帳戶資源
<a name="_cross_account_resources_not_being_created"></a>

如果使用 IAM 角色選取器時未在目標 AWS 帳戶中建立資源，請驗證信任關係和 IAMRoleSelector 組態。

 **驗證信任關係**：

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

信任政策必須允許來源帳戶的 功能角色擔任該角色。

 **確認 IAMRoleSelector 組態**：

```
# List IAMRoleSelectors (cluster-scoped)
kubectl get iamroleselector

# Describe specific selector
kubectl describe iamroleselector my-selector
```

 **驗證命名空間對齊**：

IAMRoleSelectors 是叢集範圍的資源，但以特定命名空間為目標。確保您的 ACK 資源位於符合 IAMRoleSelector 命名空間選擇器的命名空間中：

```
# 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}'
```

 **檢查 IAMRoleSelected 條件**：

檢查`ACK.IAMRoleSelected`條件，確認 IAMRoleSelector 已成功符合您的資源：

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

如果條件為 `False`或遺失，IAMRoleSelector 的命名空間選擇器不符合資源的命名空間。確認選取器的 `namespaceSelector`符合您資源的命名空間標籤。

 **檢查功能角色許可**：

功能角色對目標帳戶角色的需求`sts:AssumeRole`和`sts:TagSession`許可：

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

如需跨帳戶組態的詳細資訊，請參閱 [設定 ACK 許可](ack-permissions.md)。

## 後續步驟
<a name="_next_steps"></a>
+  [EKS 的 ACK 考量事項](ack-considerations.md) - ACK 考量事項和最佳實務
+  [設定 ACK 許可](ack-permissions.md) - 設定 IAM 許可和多帳戶模式
+  [ACK 概念](ack-concepts.md) - 了解 ACK 概念和資源生命週期
+  [對 EKS 功能進行故障診斷](capabilities-troubleshooting.md) - 一般功能故障診斷指引