카테고리 없음

Amazon EKS 서비스 점검을 위한 필수 명령어 모음

idea9329 2024. 11. 12. 15:42
반응형

 

Amazon Elastic Kubernetes Service(EKS) 클러스터는 다양한 애플리케이션이 원활하게 운영되도록 지속적인 모니터링과 점검이 필요합니다. 아래는 EKS의 상태와 성능을 확인할 수 있는 주요 명령어로, 클러스터의 상태를 빠르게 진단하고 문제를 해결하는 데 유용합니다.

1. 클러스터 노드 상태 확인

EKS 클러스터의 각 노드가 정상적으로 작동하는지 확인하려면 다음 명령어를 사용합니다.

kubectl get nodes
  • 노드 상태가 Ready인 경우, 해당 노드는 정상적으로 작동 중입니다.
  • NotReady 상태인 노드는 문제가 발생했을 가능성이 있으며, 추가 조사가 필요합니다.

2. 파드(Pod) 상태 확인

EKS 클러스터에 배포된 파드가 정상적으로 실행되고 있는지 확인하려면 다음 명령어를 사용합니다.

kubectl get pods --all-namespaces
  • Running 상태인 파드는 정상적으로 동작 중입니다.
  • Pending 또는 CrashLoopBackOff 상태인 경우, 파드에 문제가 있을 수 있으며 로그를 확인해야 합니다.

3. 파드 상세 정보 및 로그 확인

문제가 발생한 파드에 대해 상세한 정보를 확인하려면 아래 명령어를 사용합니다.

kubectl describe pod <pod-name> -n <namespace>

특정 파드의 로그를 확인하여 에러 메시지를 파악할 수도 있습니다.

kubectl logs <pod-name> -n <namespace>

이 명령어를 통해 파드 내부에서 발생한 에러나 경고 메시지를 확인할 수 있습니다.

4. 서비스(Service) 상태 확인

클러스터에서 실행 중인 모든 서비스를 확인하려면 아래 명령어를 사용합니다.

kubectl get svc --all-namespaces

서비스의 상세 정보를 확인하고 문제가 없는지 확인하려면 describe 명령어를 사용할 수 있습니다.

kubectl describe svc <service-name> -n <namespace>

5. 네임스페이스별 리소스 점검

각 네임스페이스에 속한 리소스 상태를 확인하려면 다음 명령어를 사용합니다.

kubectl get all -n <namespace>

이 명령어는 특정 네임스페이스 내의 모든 리소스(파드, 서비스, 디플로이먼트 등)를 나열하여 한눈에 상태를 확인할 수 있습니다.

6. 배포(Deployment) 상태 확인

디플로이먼트가 정상적으로 동작하는지 확인하려면 다음 명령어를 사용합니다.

kubectl get deployments -n <namespace>

특정 디플로이먼트에 대한 자세한 정보를 확인하려면 describe 명령어를 사용합니다.

kubectl describe deployment <deployment-name> -n <namespace>

7. Ingress 상태 확인

EKS 클러스터에서 Ingress 리소스를 사용하는 경우, Ingress 상태를 확인하여 외부 트래픽이 정상적으로 라우팅되고 있는지 확인할 수 있습니다.

kubectl get ingress -n <namespace>

자세한 정보를 보려면 다음과 같이 describe 명령어를 사용합니다.

kubectl describe ingress <ingress-name> -n <namespace>

8. 노드 및 파드 자원 사용량 확인

클러스터의 리소스 사용량을 확인하여 CPU와 메모리 리소스를 최적화하고 과부하를 방지할 수 있습니다.

kubectl top nodes
kubectl top pods -n <namespace>

이 명령어는 각 노드 및 파드의 CPU와 메모리 사용량을 확인할 수 있어 리소스 상태를 모니터링하는 데 유용합니다.

9. 이벤트 로그 확인

클러스터에서 발생한 최근 이벤트를 확인하여 문제가 발생한 원인을 파악할 수 있습니다.

kubectl get events --sort-by=.metadata.creationTimestamp -n <namespace>

정렬된 이벤트 목록을 통해 최근에 발생한 에러나 경고를 빠르게 파악할 수 있습니다.

10. 노드 및 파드 재시작

노드나 파드가 비정상 상태일 경우, 재시작을 통해 문제를 해결할 수 있습니다. 특정 파드를 삭제하면 자동으로 재시작됩니다.

kubectl delete pod <pod-name> -n <namespace>

문제가 발생한 노드를 재시작해야 하는 경우, AWS Management Console에서 EC2 인스턴스를 수동으로 재부팅할 수 있습니다.

11. 클러스터 상태 진단 (eksctl 사용)

eksctl 도구를 사용하여 클러스터 전체 상태를 빠르게 점검할 수 있습니다.

eksctl get cluster --name <cluster-name>

이 명령어를 통해 클러스터의 요약 정보를 확인할 수 있습니다.

요약

위 명령어들은 Amazon EKS 클러스터 상태와 리소스를 점검하고 문제를 해결하는 데 유용한 도구입니다. 이를 통해 클러스터의 가용성과 성능을 유지하며, 문제 발생 시 신속하게 진단하여 대응할 수 있습니다.

반응형