본문 바로가기

⌛ AWS 인프라 구성하기 (MiniProject)/✅ 장애내용 및 해결방안

eks에서 502 Bad Gateway 발생 시 조치사항

# 일단 502 Bad Gateway는 뭐냐면 아래와 같다.

구글을 검색하면 아래와 같이 나온다.

502(불량 게이트웨이) 오류는 서버가 다른 서버로부터 올바른 요청을 받지 못했음을 의미하는 HTTP 상태 코드입니다.

그래서 가장먼저 eks에서 확인해봐야할 것은 port 이다.

포트를 확인하는 가장 좋은 방법은 모든 namespaces의 자원을 조회 하는게 좋다.

명령어는 아래와 같다.

kubectl get ingress --all-namespaces 해당 명령어로 조회하면 ingress 전체를 조회하고 어떤 port번호로 통신하고 있는지 보여준다. 아래와 같이 80포트로 2개의 서비스가 올라가 있다면, 처음 80포트로 실행된 서비스가 정상적으로 실행이 될 것이고 나중에 80으로 실행된 서비스는 502 Bad Gateway 오류가 발생할 것이다.

seungkim:~/eks-cluster $ kubectl get ingress --all-namespaces
NAMESPACE        NAME                 CLASS    HOSTS   ADDRESS                                PORTS   AGE
new-bcheck-app   new-ingress   <none>   *       k8s-.ap-northeast-2.elb.amazonaws.com   80      5m53s
nginx            nginx-ingress        <none>   *       k8s-.ap-northeast-2.elb.amazonaws.com     80      19m

그래서 service 나 pod 등 모든 namespaces에서 조회를 하면 거의 모든 리소스를 조회할 수 있으므로, 

kubectl get {service_name} --all-namespaces 해당 명령어를 잘 활용하자.

중복 서비스를 없애는 방법은 kubectl delete -f {}.yaml 을 하면된다.

만약 yaml 파일이 3개로 구성되어 있고, 실행 되었다면 3개 모두 delete -f 를 해줘야 한다.

그래도 서비스가 정상화 안되면 DB를 확인 해야한다.

DB와 정상적으로 커넥션이 안될경우 502 Bad Gateway 오류가 발생할 수 있다.