

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# ACK 기능 관련 문제 해결
<a name="ack-troubleshooting"></a>

이 주제에서는 기능 상태 확인, 리소스 상태 확인 및 IAM 권한 문제를 포함하여 EKS의·ACK 기능에 대한 문제 해결 지침을 제공합니다.

**참고**  
EKS 기능은 완전관리형 기능이며, 클러스터 외부에서 실행됩니다. 사용자는 컨트롤러 로그 또는 컨트롤러 네임스페이스에 대한 액세스 권한이 없습니다. 문제 해결은 기능 상태, 리소스 상태 및 IAM 구성에 중점을 둡니다.

## 기능이 ACTIVE이지만 리소스가 생성되지 않음
<a name="_capability_is_active_but_resources_arent_being_created"></a>

ACK 기능에 `ACTIVE` 상태가 표시되지만 AWS에서 리소스가 생성되지 않는 경우 기능 상태, 리소스 상태 및 IAM 권한을 확인합니다.

 **기능 상태 확인**:

EKS 콘솔 또는 AWS CLI를 사용하여 기능 상태 및 상태 문제를 볼 수 있습니다.

 **콘솔**:

1. https://console.aws.amazon.com/eks/home\#/clusters에서 Amazon EKS 콘솔을 엽니다.

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 속도 제한에 도달함
+  **승인 웹후크**: 컨트롤러가 리소스 상태를 패치하지 못하도록 차단하는 승인 웹후크

 **리소스 상태 확인**:

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

 **네임스페이스 정렬 확인**:

IAMRoleSelector는 클러스터 범위의 리소스이지만 특정 네임스페이스를 대상으로 합니다. 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) - 일반 기능 문제 해결 지침