EKS 문제 해결

Amazon EKS 클러스터를 운영하다 보면 다양한 문제가 발생할 수 있습니다. 이 문서에서는 EKS 클러스터에서 발생할 수 있는 일반적인 문제와 그 해결 방법을 제공합니다.

목차

문제 해결 기본 사항

spinner

문제 해결 접근 방식

EKS 클러스터 문제를 효과적으로 해결하기 위한 체계적인 접근 방식:

  1. 문제 식별: 문제의 증상과 영향을 명확히 파악합니다.

  2. 정보 수집: 관련 로그, 이벤트 및 메트릭을 수집합니다.

  3. 분석: 수집된 정보를 분석하여 근본 원인을 파악합니다.

  4. 해결: 적절한 해결책을 적용합니다.

  5. 검증: 문제가 해결되었는지 확인합니다.

  6. 문서화: 문제와 해결 방법을 문서화하여 향후 참조할 수 있도록 합니다.

필수 도구 및 명령어

EKS 문제 해결에 필요한 필수 도구 및 명령어:

AWS CLI

AWS CLI를 사용하여 EKS 클러스터 정보를 확인합니다:

kubectl

kubectl을 사용하여 Kubernetes 리소스를 확인합니다:

eksctl

eksctl을 사용하여 EKS 클러스터를 관리합니다:

AWS CloudWatch

CloudWatch를 사용하여 EKS 클러스터 로그 및 메트릭을 확인합니다:

로그 수집 및 분석

EKS 컨트롤 플레인 로그

EKS 컨트롤 플레인 로그를 활성화하고 확인합니다:

노드 로그

노드 로그를 확인합니다:

파드 로그

파드 로그를 확인합니다:

진단 정보 수집

클러스터 진단 정보

클러스터 진단 정보를 수집합니다:

시스템 리소스 정보

시스템 리소스 정보를 수집합니다:

네트워크 진단

네트워크 진단 정보를 수집합니다:

클러스터 생성 및 관리 문제

spinner

클러스터 생성 실패

일반적인 원인

EKS 클러스터 생성 실패의 일반적인 원인:

  1. IAM 권한 부족: 클러스터를 생성하는 IAM 사용자 또는 역할에 필요한 권한이 없음

  2. 서비스 할당량 초과: EKS 클러스터 또는 관련 리소스(예: VPC, 서브넷)의 할당량 초과

  3. 네트워크 구성 문제: VPC, 서브넷 또는 보안 그룹 구성 오류

  4. 리소스 이름 충돌: 이미 사용 중인 클러스터 이름 또는 리소스 이름 사용

  5. AWS 서비스 가용성 문제: EKS 또는 관련 서비스의 가용성 문제

문제 해결 단계

  1. IAM 권한 확인:

  1. 서비스 할당량 확인:

  1. 네트워크 구성 확인:

  1. CloudTrail 로그 확인:

  1. AWS 서비스 상태 확인:

AWS 서비스 상태 대시보드(https://status.aws.amazon.com/)에서 EKS 및 관련 서비스의 상태를 확인합니다.

일반적인 해결 방법

  1. IAM 권한 추가:

  1. 서비스 할당량 증가 요청:

  1. 네트워크 구성 수정:

  1. 다른 리전에서 시도:

클러스터 엔드포인트 접근 문제

일반적인 원인

EKS 클러스터 엔드포인트 접근 문제의 일반적인 원인:

  1. 네트워크 접근 제한: 클러스터 엔드포인트에 대한 네트워크 접근 제한

  2. 인증 문제: 클러스터에 대한 인증 문제

  3. kubeconfig 구성 오류: 잘못된 kubeconfig 구성

  4. API 서버 가용성 문제: API 서버 가용성 문제

문제 해결 단계

  1. 클러스터 엔드포인트 확인:

  1. 클러스터 엔드포인트 접근 정책 확인:

  1. kubeconfig 구성 확인:

  1. 인증 확인:

일반적인 해결 방법

  1. 클러스터 엔드포인트 접근 정책 수정:

  1. kubeconfig 재생성:

  1. IAM 인증 구성:

  1. VPC 엔드포인트 생성:

클러스터 삭제 문제

일반적인 원인

EKS 클러스터 삭제 문제의 일반적인 원인:

  1. 리소스 의존성: 클러스터에 의존하는 리소스가 아직 존재함

  2. IAM 권한 부족: 클러스터를 삭제하는 IAM 사용자 또는 역할에 필요한 권한이 없음

  3. 리소스 삭제 실패: 클러스터 리소스 삭제 실패

문제 해결 단계

  1. 클러스터 상태 확인:

  1. 클러스터 리소스 확인:

  1. CloudTrail 로그 확인:

일반적인 해결 방법

  1. 의존 리소스 삭제:

  1. 강제 삭제:

  1. 수동 리소스 정리:

  1. AWS 리소스 정리:

네트워킹 문제

EKS 클러스터에서 네트워킹 문제는 가장 흔하게 발생하는 문제 중 하나입니다. 이 섹션에서는 일반적인 네트워킹 문제와 그 해결 방법을 다룹니다.

spinner

파드 간 통신 문제

일반적인 원인

파드 간 통신 문제의 일반적인 원인:

  1. 네트워크 정책: 제한적인 네트워크 정책이 파드 간 통신을 차단

  2. 보안 그룹 규칙: 제한적인 보안 그룹 규칙이 파드 간 통신을 차단

  3. CNI 플러그인 문제: CNI 플러그인 구성 또는 버전 문제

  4. 파드 CIDR 충돌: 파드 CIDR 범위 충돌

  5. MTU 불일치: 네트워크 인터페이스 간 MTU 불일치

문제 해결 단계

  1. 네트워크 정책 확인:

  1. 보안 그룹 규칙 확인:

  1. CNI 플러그인 확인:

  1. 파드 CIDR 확인:

  1. MTU 확인:

일반적인 해결 방법

  1. 네트워크 정책 수정:

  1. 보안 그룹 규칙 수정:

  1. CNI 플러그인 업데이트:

  1. CNI 구성 수정:

  1. 파드 재시작:

서비스 접근 문제

일반적인 원인

서비스 접근 문제의 일반적인 원인:

  1. 서비스 선택자 불일치: 서비스 선택자가 파드 레이블과 일치하지 않음

  2. 엔드포인트 문제: 서비스 엔드포인트가 생성되지 않음

  3. 파드 상태 문제: 파드가 준비되지 않음

  4. 서비스 포트 불일치: 서비스 포트가 파드 포트와 일치하지 않음

  5. kube-proxy 문제: kube-proxy 구성 또는 상태 문제

문제 해결 단계

  1. 서비스 및 파드 확인:

  1. 엔드포인트 확인:

  1. 파드 상태 확인:

  1. 서비스 포트 확인:

  1. kube-proxy 확인:

일반적인 해결 방법

  1. 서비스 선택자 수정:

  1. 파드 레이블 수정:

  1. 서비스 포트 수정:

  1. kube-proxy 재시작:

  1. 서비스 재생성:

로드 밸런서 문제

일반적인 원인

로드 밸런서 문제의 일반적인 원인:

  1. 서브넷 태그 누락: 로드 밸런서 서브넷 태그 누락

  2. 보안 그룹 규칙 제한: 제한적인 보안 그룹 규칙

  3. 상태 확인 실패: 로드 밸런서 상태 확인 실패

  4. 서비스 주석 문제: 잘못된 서비스 주석

  5. 할당량 초과: 로드 밸런서 할당량 초과

문제 해결 단계

  1. 서비스 상태 확인:

  1. 로드 밸런서 상태 확인:

  1. 서브넷 태그 확인:

  1. 보안 그룹 규칙 확인:

  1. 서비스 이벤트 확인:

일반적인 해결 방법

  1. 서브넷 태그 추가:

  1. 보안 그룹 규칙 추가:

  1. 서비스 주석 수정:

  1. 서비스 재생성:

  1. 로드 밸런서 수동 생성:

DNS 문제

일반적인 원인

DNS 문제의 일반적인 원인:

  1. CoreDNS 파드 문제: CoreDNS 파드가 실행되지 않거나 준비되지 않음

  2. kube-dns 서비스 문제: kube-dns 서비스가 올바르게 구성되지 않음

  3. DNS 정책 문제: 파드 DNS 정책이 올바르게 구성되지 않음

  4. 네트워크 정책 제한: 네트워크 정책이 DNS 트래픽을 차단

  5. CoreDNS 구성 문제: CoreDNS 구성 오류

문제 해결 단계

  1. CoreDNS 파드 확인:

  1. kube-dns 서비스 확인:

  1. CoreDNS 구성 확인:

  1. DNS 해결 테스트:

  1. DNS 디버깅:

일반적인 해결 방법

  1. CoreDNS 재시작:

  1. CoreDNS 구성 수정:

  1. CoreDNS 스케일 업:

  1. DNS 정책 수정:

  1. CoreDNS 업데이트:

VPC CNI 문제

일반적인 원인

VPC CNI 문제의 일반적인 원인:

  1. IP 주소 부족: 노드에 할당된 IP 주소 부족

  2. ENI 한도 도달: 노드의 ENI(Elastic Network Interface) 한도 도달

  3. CNI 버전 문제: 오래된 또는 호환되지 않는 CNI 버전

  4. CNI 구성 오류: 잘못된 CNI 구성

  5. 권한 문제: CNI에 필요한 IAM 권한 부족

문제 해결 단계

  1. VPC CNI 파드 확인:

  1. VPC CNI 로그 확인:

  1. IP 주소 사용량 확인:

  1. CNI 구성 확인:

  1. IAM 권한 확인:

일반적인 해결 방법

  1. IP 주소 부족 해결:

  1. ENI 한도 증가:

  1. VPC CNI 업데이트:

  1. CNI 구성 수정:

  1. IAM 권한 추가:

노드 및 파드 문제

spinner

노드 상태 문제

일반적인 원인

노드 상태 문제의 일반적인 원인:

  1. 리소스 부족: CPU, 메모리 또는 디스크 공간 부족

  2. kubelet 문제: kubelet 서비스 중단 또는 구성 오류

  3. 네트워크 연결 문제: 노드와 컨트롤 플레인 간 네트워크 연결 문제

  4. 인증 문제: 노드 인증서 만료 또는 인증 문제

  5. 시스템 문제: 커널 또는 운영 체제 문제

문제 해결 단계

  1. 노드 상태 확인:

  1. 노드 리소스 확인:

  1. kubelet 상태 확인:

  1. 노드 이벤트 확인:

  1. 노드 인증서 확인:

일반적인 해결 방법

  1. kubelet 재시작:

  1. 노드 드레이닝 및 재시작:

  1. 디스크 공간 확보:

  1. 노드 교체:

  1. 노드 그룹 업데이트:

파드 문제

일반적인 원인

파드 문제의 일반적인 원인:

  1. 리소스 제약: CPU, 메모리 또는 스토리지 제약

  2. 이미지 문제: 이미지를 찾을 수 없거나 액세스할 수 없음

  3. 구성 오류: 파드 구성 오류

  4. 권한 문제: 서비스 계정 또는 보안 컨텍스트 문제

  5. 노드 문제: 노드 리소스 부족 또는 상태 문제

문제 해결 단계

  1. 파드 상태 확인:

  1. 파드 로그 확인:

  1. 파드 이벤트 확인:

  1. 파드 리소스 사용량 확인:

  1. 파드 디버깅:

일반적인 해결 방법

  1. 파드 재시작:

  1. 리소스 제약 조정:

  1. 이미지 문제 해결:

  1. 권한 문제 해결:

  1. 노드 선택기 조정:

자동 스케일링 문제

일반적인 원인

자동 스케일링 문제의 일반적인 원인:

  1. 메트릭 문제: 메트릭 서버 또는 메트릭 수집 문제

  2. HPA 구성 오류: HPA(Horizontal Pod Autoscaler) 구성 오류

  3. 리소스 제약: 클러스터 리소스 제약으로 인한 스케일링 제한

  4. 노드 그룹 구성 오류: 노드 그룹 자동 스케일링 구성 오류

  5. 쿨다운 기간: 스케일링 작업 간 쿨다운 기간

문제 해결 단계

  1. HPA 상태 확인:

  1. 메트릭 서버 확인:

  1. 노드 그룹 자동 스케일링 확인:

  1. 클러스터 자동 스케일러 로그 확인:

  1. 메트릭 확인:

일반적인 해결 방법

  1. 메트릭 서버 재시작:

  1. HPA 구성 수정:

  1. 클러스터 자동 스케일러 구성 수정:

  1. 노드 그룹 자동 스케일링 구성 수정:

  1. 사용자 지정 메트릭 구성:

IAM 및 인증 문제

spinner

IAM 인증 문제

일반적인 원인

IAM 인증 문제의 일반적인 원인:

  1. aws-auth ConfigMap 오류: aws-auth ConfigMap 구성 오류

  2. IAM 역할 권한 부족: IAM 역할에 필요한 권한 부족

  3. OIDC 공급자 문제: OIDC 공급자 구성 오류

  4. AWS CLI 자격 증명 문제: AWS CLI 자격 증명 만료 또는 구성 오류

  5. kubeconfig 문제: kubeconfig 구성 오류

문제 해결 단계

  1. aws-auth ConfigMap 확인:

  1. IAM 역할 확인:

  1. OIDC 공급자 확인:

  1. AWS CLI 자격 증명 확인:

  1. kubeconfig 확인:

일반적인 해결 방법

  1. aws-auth ConfigMap 수정:

  1. IAM 역할 권한 추가:

  1. OIDC 공급자 생성:

  1. AWS CLI 자격 증명 업데이트:

  1. kubeconfig 재생성:

RBAC 문제

일반적인 원인

RBAC 문제의 일반적인 원인:

  1. 권한 부족: 사용자 또는 서비스 계정에 필요한 권한 부족

  2. 역할 바인딩 문제: 역할 바인딩 구성 오류

  3. 네임스페이스 범위 문제: 네임스페이스 범위 권한 문제

  4. 서비스 계정 구성 오류: 서비스 계정 구성 오류

  5. 클러스터 역할 문제: 클러스터 역할 구성 오류

문제 해결 단계

  1. 권한 확인:

  1. 역할 및 역할 바인딩 확인:

  1. 클러스터 역할 및 클러스터 역할 바인딩 확인:

  1. 서비스 계정 확인:

  1. 액세스 검토:

일반적인 해결 방법

  1. 역할 생성:

  1. 역할 바인딩 생성:

  1. 클러스터 역할 생성:

  1. 클러스터 역할 바인딩 생성:

  1. 서비스 계정 생성:

스토리지 문제

spinner

EBS 볼륨 문제

일반적인 원인

EBS 볼륨 문제의 일반적인 원인:

  1. 볼륨 한도 초과: EBS 볼륨 한도 초과

  2. 권한 문제: EBS 볼륨 생성 또는 연결 권한 부족

  3. 가용 영역 불일치: 파드와 EBS 볼륨의 가용 영역 불일치

  4. 스토리지 클래스 문제: 스토리지 클래스 구성 오류

  5. CSI 드라이버 문제: EBS CSI 드라이버 문제

문제 해결 단계

  1. PVC 상태 확인:

  1. PV 상태 확인:

  1. 스토리지 클래스 확인:

  1. EBS CSI 드라이버 확인:

  1. 이벤트 확인:

일반적인 해결 방법

  1. EBS CSI 드라이버 설치 또는 업데이트:

  1. IAM 역할 권한 추가:

  1. 스토리지 클래스 생성:

  1. PVC 재생성:

  1. 볼륨 수동 연결:

EFS 문제

일반적인 원인

EFS 문제의 일반적인 원인:

  1. 마운트 대상 문제: EFS 마운트 대상 구성 오류 또는 누락

  2. 보안 그룹 문제: EFS 마운트 대상 보안 그룹 규칙 제한

  3. 권한 문제: EFS 액세스 권한 문제

  4. CSI 드라이버 문제: EFS CSI 드라이버 문제

  5. 네트워크 문제: EFS 마운트 대상에 대한 네트워크 연결 문제

문제 해결 단계

  1. PVC 및 PV 상태 확인:

  1. EFS CSI 드라이버 확인:

  1. EFS 마운트 대상 확인:

  1. 보안 그룹 규칙 확인:

  1. 파드 마운트 디버깅:

일반적인 해결 방법

  1. EFS CSI 드라이버 설치 또는 업데이트:

  1. IAM 역할 권한 추가:

  1. EFS 마운트 대상 생성:

  1. 보안 그룹 규칙 추가:

  1. 스토리지 클래스 및 PV 생성:

로깅 및 모니터링 문제

spinner

CloudWatch 로그 문제

일반적인 원인

CloudWatch 로그 문제의 일반적인 원인:

  1. 로그 그룹 권한 문제: CloudWatch 로그 그룹에 대한 권한 부족

  2. Fluent Bit 또는 Fluentd 구성 오류: 로그 수집기 구성 오류

  3. 로그 볼륨 제한: 로그 볼륨 제한 초과

  4. 컨테이너 로그 경로 문제: 컨테이너 로그 경로 구성 오류

  5. IAM 역할 권한 문제: 로그 수집기에 대한 IAM 역할 권한 부족

문제 해결 단계

  1. 클러스터 로깅 상태 확인:

  1. Fluent Bit 파드 확인:

  1. CloudWatch 로그 그룹 확인:

  1. IAM 역할 권한 확인:

  1. 로그 이벤트 확인:

일반적인 해결 방법

  1. 클러스터 로깅 활성화:

  1. Fluent Bit 설치 또는 업데이트:

  1. IAM 역할 권한 추가:

  1. Fluent Bit 구성 수정:

  1. 로그 그룹 수동 생성:

모니터링 문제

일반적인 원인

모니터링 문제의 일반적인 원인:

  1. 메트릭 서버 문제: 메트릭 서버 구성 또는 상태 문제

  2. Prometheus 구성 오류: Prometheus 구성 오류

  3. CloudWatch Container Insights 문제: Container Insights 구성 또는 상태 문제

  4. 리소스 제약: 모니터링 구성 요소에 대한 리소스 제약

  5. 네트워크 문제: 모니터링 구성 요소 간 네트워크 연결 문제

문제 해결 단계

  1. 메트릭 서버 확인:

  1. Prometheus 확인:

  1. CloudWatch Container Insights 확인:

  1. CloudWatch 메트릭 확인:

  1. 대시보드 확인:

일반적인 해결 방법

  1. 메트릭 서버 설치 또는 업데이트:

  1. Container Insights 설치:

  1. Prometheus 설치:

  1. Grafana 설치:

  1. 리소스 제약 조정:

성능 문제

spinner

노드 성능 문제

일반적인 원인

노드 성능 문제의 일반적인 원인:

  1. 리소스 부족: CPU, 메모리 또는 디스크 리소스 부족

  2. 노드 오버프로비저닝: 노드에 너무 많은 파드 배치

  3. 인스턴스 유형 제약: 워크로드에 부적합한 인스턴스 유형

  4. 커널 또는 운영 체제 문제: 커널 또는 운영 체제 구성 문제

  5. 네트워크 병목 현상: 네트워크 대역폭 또는 패킷 처리 제약

문제 해결 단계

  1. 노드 리소스 사용량 확인:

  1. 시스템 메트릭 확인:

  1. 네트워크 메트릭 확인:

  1. 커널 파라미터 확인:

  1. kubelet 메트릭 확인:

일반적인 해결 방법

  1. 노드 스케일 업:

  1. 노드 스케일 아웃:

  1. 파드 리소스 제약 조정:

  1. 커널 파라미터 조정:

  1. 인스턴스 스토리지 최적화:

파드 성능 문제

일반적인 원인

파드 성능 문제의 일반적인 원인:

  1. 리소스 제약: CPU 또는 메모리 제약

  2. 리소스 경합: 노드에서 리소스 경합

  3. 네트워크 지연 시간: 네트워크 지연 시간 또는 대역폭 제약

  4. 디스크 I/O 제약: 디스크 I/O 제약

  5. 애플리케이션 코드 문제: 비효율적인 애플리케이션 코드

문제 해결 단계

  1. 파드 리소스 사용량 확인:

  1. 파드 로그 확인:

  1. 파드 이벤트 확인:

  1. 파드 디버깅:

  1. 애플리케이션 프로파일링:

일반적인 해결 방법

  1. 파드 리소스 제약 조정:

  1. 파드 안티어피니티 구성:

  1. 노드 선택기 구성:

  1. 토폴로지 분산 제약 구성:

  1. HPA 구성:

네트워크 성능 문제

일반적인 원인

네트워크 성능 문제의 일반적인 원인:

  1. CNI 구성 문제: CNI 구성 또는 버전 문제

  2. 네트워크 정책 제한: 제한적인 네트워크 정책

  3. MTU 불일치: 네트워크 인터페이스 간 MTU 불일치

  4. 대역폭 제약: 인스턴스 유형 또는 네트워크 인터페이스 대역폭 제약

  5. DNS 해결 지연: DNS 해결 지연 또는 제한

문제 해결 단계

  1. 네트워크 성능 테스트:

  1. CNI 구성 확인:

  1. MTU 확인:

  1. DNS 성능 확인:

  1. 네트워크 정책 확인:

일반적인 해결 방법

  1. CNI 구성 최적화:

  1. 인스턴스 유형 업그레이드:

  1. 향상된 네트워킹 활성화:

  1. CoreDNS 스케일 업:

  1. NodeLocal DNSCache 설치:

업그레이드 문제

spinner

클러스터 업그레이드 문제

일반적인 원인

클러스터 업그레이드 문제의 일반적인 원인:

  1. 버전 호환성 문제: 컨트롤 플레인과 노드 간 버전 호환성 문제

  2. API 사용 중단: 사용 중단된 API 사용

  3. 애드온 호환성 문제: 애드온과 새 버전 간 호환성 문제

  4. 리소스 제약: 업그레이드 중 리소스 제약

  5. 네트워크 문제: 업그레이드 중 네트워크 연결 문제

문제 해결 단계

  1. 클러스터 버전 확인:

  1. 업그레이드 상태 확인:

  1. 사용 중단된 API 확인:

  1. 애드온 버전 확인:

  1. 이벤트 확인:

일반적인 해결 방법

  1. 단계적 업그레이드:

  1. 사용 중단된 API 업데이트:

  1. 애드온 업데이트:

  1. 노드 그룹 업데이트:

  1. 업그레이드 재시도:

노드 그룹 업그레이드 문제

일반적인 원인

노드 그룹 업그레이드 문제의 일반적인 원인:

  1. 파드 중단 예산 문제: 파드 중단 예산(PDB) 구성 오류

  2. 드레이닝 실패: 노드 드레이닝 실패

  3. AMI 호환성 문제: AMI와 Kubernetes 버전 간 호환성 문제

  4. 리소스 제약: 업그레이드 중 리소스 제약

  5. 인스턴스 시작 실패: 새 인스턴스 시작 실패

문제 해결 단계

  1. 노드 그룹 상태 확인:

  1. 업그레이드 상태 확인:

  1. PDB 확인:

  1. 노드 상태 확인:

  1. 이벤트 확인:

일반적인 해결 방법

  1. PDB 수정:

  1. 노드 수동 드레이닝:

  1. 업그레이드 구성 수정:

  1. 노드 그룹 재생성:

  1. AMI ID 지정:

애드온 업그레이드 문제

일반적인 원인

애드온 업그레이드 문제의 일반적인 원인:

  1. 구성 충돌: 사용자 정의 구성과 새 버전 간 충돌

  2. 호환성 문제: 애드온과 Kubernetes 버전 간 호환성 문제

  3. 리소스 제약: 업그레이드에 필요한 리소스 부족

  4. 권한 문제: 애드온 서비스 계정 권한 문제

  5. 네트워크 문제: 애드온 구성 요소 간 네트워크 연결 문제

문제 해결 단계

  1. 애드온 상태 확인:

  1. 애드온 파드 확인:

  1. 애드온 로그 확인:

  1. 애드온 구성 확인:

  1. 이벤트 확인:

일반적인 해결 방법

  1. 충돌 해결 전략 변경:

  1. 애드온 재설치:

  1. IAM 역할 권한 추가:

  1. 애드온 구성 수정:

  1. 애드온 수동 설치:

일반적인 오류 메시지 및 해결 방법

spinner

클러스터 생성 및 관리 오류

UnsupportedAvailabilityZoneException

원인: 지정된 가용 영역에서 요청된 인스턴스 유형을 사용할 수 없습니다.

해결 방법:

  • 다른 가용 영역 선택

  • 다른 인스턴스 유형 선택

  • 해당 가용 영역에서 사용 가능한 인스턴스 유형 확인

ResourceLimitExceeded

원인: AWS 계정의 리소스 한도를 초과했습니다.

해결 방법:

  • 사용하지 않는 리소스 정리

  • 서비스 할당량 증가 요청

  • 다른 리전에서 시도

InvalidParameterException: Error in role params

원인: 지정된 IAM 역할이 없거나 필요한 권한이 없습니다.

해결 방법:

  • IAM 역할 생성 또는 확인

  • 필요한 권한 추가

ClusterUnreachable

원인: 클러스터 API 서버에 연결할 수 없습니다.

해결 방법:

  • 네트워크 연결 확인

  • 보안 그룹 규칙 확인

  • kubeconfig 구성 확인

노드 및 파드 오류

FailedScheduling: 0/3 nodes are available: 3 Insufficient memory

원인: 노드에 파드를 스케줄링하기 위한 충분한 메모리가 없습니다.

해결 방법:

  • 더 큰 인스턴스 유형으로 노드 그룹 업데이트

  • 노드 그룹 스케일 아웃

  • 파드 리소스 요청 감소

CrashLoopBackOff

원인: 컨테이너가 반복적으로 충돌하고 재시작됩니다.

해결 방법:

  • 컨테이너 로그 확인

  • 애플리케이션 구성 확인

  • 리소스 제약 확인

ImagePullBackOff

원인: 컨테이너 이미지를 가져올 수 없습니다.

해결 방법:

  • 이미지 이름 및 태그 확인

  • 이미지 레지스트리 접근성 확인

  • 이미지 풀 시크릿 구성

Evicted

원인: 노드 리소스 부족으로 인해 파드가 축출되었습니다.

해결 방법:

  • 노드 리소스 확인

  • 파드 리소스 요청 및 제한 조정

  • 노드 그룹 스케일 아웃

네트워킹 오류

FailedCreateServiceEndpoints

원인: 서비스 엔드포인트를 생성할 수 없습니다.

해결 방법:

  • 서비스 선택자 확인

  • 파드 레이블 확인

  • 파드 상태 확인

EniLimitExceeded

원인: 노드의 ENI 한도를 초과했습니다.

해결 방법:

  • 더 큰 인스턴스 유형으로 노드 그룹 업데이트

  • 프리픽스 위임 활성화

  • 사용자 지정 네트워킹 활성화

FailedLoadBalancerCreation

원인: 로드 밸런서를 생성할 수 없습니다.

해결 방법:

  • 서브넷 태그 확인

  • 보안 그룹 규칙 확인

  • 서비스 주석 확인

IAM 및 인증 오류

error: You must be logged in to the server (Unauthorized)

원인: 클러스터에 대한 인증 문제입니다.

해결 방법:

  • AWS CLI 자격 증명 확인

  • kubeconfig 재생성

  • aws-auth ConfigMap 확인

error: You must be logged in to the server (the server has asked for the client to provide credentials)

원인: IAM 인증 문제입니다.

해결 방법:

  • AWS CLI 자격 증명 확인

  • aws-auth ConfigMap 확인

  • IAM 역할 또는 사용자 매핑 추가

error: error loading config file "/home/user/.kube/config": open /home/user/.kube/config: permission denied

원인: kubeconfig 파일 권한 문제입니다.

해결 방법:

  • kubeconfig 파일 권한 수정

  • kubeconfig 파일 재생성

스토리지 오류

FailedAttachVolume: Multi-Attach error for volume

원인: 볼륨이 이미 다른 노드에 연결되어 있습니다.

해결 방법:

  • 이전 파드 삭제

  • 볼륨 수동 분리

  • 노드 재시작

FailedMount: Unable to mount volumes for pod: timeout expired waiting for volumes to attach or mount

원인: 볼륨을 마운트할 수 없습니다.

해결 방법:

  • 볼륨 상태 확인

  • CSI 드라이버 확인

  • 노드 재시작

PersistentVolumeClaim is not bound

원인: PVC가 PV에 바인딩되지 않았습니다.

해결 방법:

  • PVC 및 PV 상태 확인

  • 스토리지 클래스 확인

  • 볼륨 바인딩 모드 확인

로깅 및 모니터링 오류

Failed to list *v1.Pod: Unauthorized

원인: 메트릭 서버에 대한 인증 문제입니다.

해결 방법:

  • 메트릭 서버 서비스 계정 확인

  • RBAC 구성 확인

  • 메트릭 서버 재시작

Failed to scrape node

원인: 메트릭 서버가 노드 메트릭을 수집할 수 없습니다.

해결 방법:

  • kubelet 구성 확인

  • 메트릭 서버 구성 확인

  • 네트워크 연결 확인

Failed to list *v1.Pod: the server could not find the requested resource

원인: API 서버 구성 문제입니다.

해결 방법:

  • API 서버 구성 확인

  • 클러스터 버전 확인

  • 메트릭 서버 재설치

퀴즈

이 장에서 배운 내용을 테스트하려면 주제 퀴즈를 풀어보세요.

마지막 업데이트