[k8s] 나의 Ingress 테스트 방법

sang yun Lee·2023년 9월 20일
0

k8s

목록 보기
9/18

개요


Ingress 를 통한 서비스가 동작하지 않을 때에 나는 아래와 같이 리소스들을 점검한다.

내가 어떤 식으로 점검하는 지 기록하려 한다.

점검하는 리소스


문제가 있다고 의심이 되는 리소스에 대해서 우선적으로 점검한다.

🔹 Ingress-Nginx-Controller

외부로부터 트래픽이 오는 지 확인한다.

점검 순서

1. ingress-nginx-controller 의 로그를 볼 수 있게 해둔다.

  # ingress-nginx-controller 의 로그 추적 실행
  $ kubectl logs -n ingress-nginx deployments/ingress-nginx-controller -f

2. 다른 터미널 에서 트래픽을 날려본다.

  $ curl https://www.enttolog.shop

3. ingress-nginx-controller 의 로그를 확인한다. 아래와 같이 로그가 뜰 경우 정상적으로 트래픽이 온 것이며 ingress-nginx-controller 에는 문제가 없을 것으로 판단할 수 있다.

  # kubectl logs -n ingress-nginx deployments/ingress-nginx-controller -f
  192.168.0.213 - - [19/Sep/2023:21:37:14 +0000] "GET / HTTP/2.0" 200 674 "-" "curl/7.68.0" 33 0.068 [default-entto-front-80] [] 172.24.198.243:80 674 0.069 200 261b79dbb8504d51c6b62e128b384dfb

🔹 Ingress

IngressPod 들을 인식하고 있는 지 확인한다.

점검 순서

1. 확인하고자 하는 Ingress 확인

  $ kubectl get ingress
  ===
  NAME            CLASS   HOSTS               ADDRESS         PORTS     AGE
  ...
  entto-front     nginx   www.enttolog.shop  192.168.0.213   80, 443   62m
  ...

2. 해당 Ingress상세 설명 로그 확인

  $ kubectl describe ingress entto-front 
  ===
  ...
  Rules:
    Host               Path  Backends
    ----               ----  --------
    www.enttolog.shop  
                       /   entto-front:80 (172.24.198.243:80)
  ...

3. 상세 설명 로그 분석

  1. 이전의 로그에서 `Ingress``Pod` 들을 인식하고 있는 것을 확인함. (존재하는 것을 확인)
  # {service name}:{service port} ({pod ip}:{pod port}, ...)
  # entto-front:80 (172.24.198.243:80)
  
  2. Host 명이 요청한 도메인과 동일한 지 확인
  # curl www.enttolog.shop 을 요청했으니 동일하다.
  

🔹 Service

Pod 들이 잘 연결되어 있는 지 확인한다.

점검 순서

1. Endpoint 를 확인한다.

  $ kubectl describe service entto-front
  ===
  ...
  Endpoints:         172.24.198.213:80
  ...

2. Pod 와 연결되어있는 지 확인한다.

결과로 나온 `172.24.198.213:80` 은 `Pod` 의 정보이다. (이전의 `Ingress` 점검에서도 간접적으로 확인할 수 있다.)

3. Pod 들의 로그를 분석한다.

  $ kubectl logs services/entto-front -f --tail 3
  ===
  ...
  172.24.28.25 - - [20/Sep/2023:00:08:13 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
  172.24.28.25 - - [20/Sep/2023:00:08:17 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
  ...

🔹 Deployment, Pod

보통 트래픽을 테스트하는 것까지는 여기 선까지 확인하진 않아도 될 듯하다 (상황에 따라 다르겠지만).
그래서 여기는 일단 스킵한다.

참고자료


0개의 댓글