Kubernetes 기초 (14) - Ingress

이것저것 개발자·2023년 4월 3일
0

kubernetes 기초

목록 보기
14/16
post-thumbnail

Ingress

Service 추상화, 의미있는 단일 엔드포인트 제공

  • 트래픽을 Service로 분산하기 위한 라우팅 규칙 모음
  • 클라인언트가 호출한 Host 헤더나 path를 통해 Service를 구분하고 트래픽을 포워딩

Ingress Controller

Ingress 규칙에 따라 트래픽 분산을 실행하기 위한 리소스

  • 제공자(클라우드)에 따라 구현한 Ingress controller마다 기능이 다르다.

오브젝트 선언

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
	name: <name>
    namespace: <namespace>
    labels:
    	project: <project-name>
spec:
	rules:
    - host: <...>           # Host 헤더가 일치하는 요청만 매칭 (host기준으로 맵핑)
      http:
      	paths:
        - pathType: Prefix  # /로 시작하는 모든 경로에 매칭
          path: /
          backend:          # order 서비스의 80포트로 포워딩
          	service:
            	name: order
                port:
                	number: 80

동작 방식

Ingress Controller가 HTTP Request의 "Host" 헤더 정보를 이용해서 트래픽 전달

하나의 host에 URL path별로 서비스 매핑

rules:
- http:
	paths:
    - pathType: Prefix
      path: /order            # /order로 시작하는 모든 경로의 요청에 대해 실행
      backend:
      	service:
        	name: order
            port:
            	number: 80
    - pathType: Prefix
      path: /payment          # /payment로 시작하는 모든 경로의 요청에 대해 실행
      backend:
      	service:
        	name: payment
            port:
            	number: 80

defaultBackend 설정

spec:
	defaultBackend:       # Ingress에 정의되지 않는 요청을 받으면 처리한다.
    	service:
        	name: order
            port:
            	number: 80
  • Ingress에 정의되지 않은 요청

    • 정의하지 않은 HOST 헤더 요청을 받은 경우
    • path 표현식과 일치하지 않는 경우

    특징

    • 클라이언트는 클러스터 안에 있는 여러 Service를 하나의 IP로 접근할 수 있다.
    • 쿠버네티스 클러스트에 존재하는 Service 리소스에 대한 라우팅 규칙을 선언한다.
    • Ingress Controller가 받은 HTTP Request의 Host 헤더 정보나 URL Path에 따라 여러 서비스로 트래픽을 분산할 수 있다.
profile
조호영, Developing something

0개의 댓글