Ingress API Gateway 구성하기

이eun·2024년 12월 19일

ingress.yaml

# https://kubernetes.io/docs/concepts/services-networking/ingress/#the-ingress-resource

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  namespace: default
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web
            port:
              number: 8080
      - path: /inc
        pathType: Prefix
        backend:
          service:
            name: web-inc
            port:
              number: 8080

Portforward URLs 클릭하면
service는 localhost로 터널링된 것을 알 수 있지만,
ingress는 터널링하지 않았다.
minikube tunnel 명령이 ingress를 터널링해서 localhost로 연결해준다.

결과값
Port forwarding service/web-inc in namespace default, remote port 8080 -> http://127.0.0.1:8080
Port forwarding service/redis in namespace default, remote port 6379 -> http://127.0.0.1:6379
Port forwarding service/web in namespace default, remote port 8080 -> http://127.0.0.1:8081

먼저 ingress 터널링 하기 전에 ingress addon 활성화부터 시켜주자.
그 다음 ingress를 터널링한다.

  • minikube addons enable ingress
  • minikube tunnel

curl localhost/inc

  1. ingress API gateway가 web-inc service에 요청
  2. web-inc service는 web-inc pod로 요청하여 count 값을 증가
  3. web-inc pod는 redis-0에게 incr() 명령으로 count값의 증가 요청하여 결과를 받아서 반환

curl localhost

  1. ingress API gateway가 web service에 요청
  2. web service는 web pod에 요청
  3. web pod는 redis service에 get() 명령으로 count값 확인을 요청
  4. redis service는 redis-0,1,2,3개의 파드 중 하나에게 count값을 요청
  5. web pod는 count값을 반환하고 curl명령으로 결과를 출력함

0개의 댓글