본문 바로가기
IT Knowledge/Kubernetes

Kubernetes Ingress 설명(개념)

by Seok. 2020. 12. 17.
반응형

클러스터 내의 서비스에 대한 '외부 접근을 관리하는 API 오브젝트'(일반적으로 HTTP 관리함)

인그레스는 부하 분산, SSL종료, 명칭 기반의 가상 호스팅을 제공할 있다.

 

인그레스란?

클러스터 외부에서 클러스터 내부서비스로 HTTP, HTTPS경로를 노출한다.

트래픽은 인그레스 리소스에 정의된 규칙에 의해서 컨트롤 된다.

임의의 포트 또는 프로토콜을 노출시키지 않는다.

 

 

인그레스가 제공할 있는 구성

  • 외부에서 서비스 접속이 가능한 URL
  • 트래픽 로드 밸런스
  • SSL/TLS 종료
  • 이름-기반의 가상 호스팅

 

전제조건

  • 인그레스 컨트롤러 있어야한다. (ex. Ingress-nginx)

lifeplan-b.tistory.com/16

 

Kubernetes Ingress Controller 설명 및 사용법

인그레스 리소스가 작동하려면, 클러스터는 인그레스 컨트롤러가 반드시 필요하다. 인그레스 컨트롤러는 클러스터와 함께 자동으로 실행되지 않는다. 쿠버네티스의 인그레스 컨트롤러 GCE 컨트

lifeplan-b.tistory.com

 

인그레스 리소스

쿠버네티스의 다른 리소스와 마찬가지로 apiVersion, kind, metadata 필드가 필요.

인그레스 오브젝트의 이름은 'DNS 서브도메인 이름'이어야 한다.

(Ex. Proxy.test.com 이면, proxy.yaml…)

 

자세한 내용은 설정파일 작성의 내용에서 참고

 

인그레스 사양에는 로드밸런서 or 프록시 서버를 구성하는데 필요한 모든 정보가 있다.

가장중요한 점은 들어오는 요청과 일치하는 규칙목록을 포함하는 것이다.

인그레스 리소스는 HTTP(S) 트로팩을 지시하는 규칙만 지원한다.

 

 

인그레스 규칙

  • 선택적 호스트 : 호스트가 적용되면 규칙이 해당 호스트에 적용(ex. Foo.bar.com). 호스트가 지정되지 않으면 모든 인바운드 트래픽에
  • 경로 목록 : (ex. Testpath) 로드밸런서가 트래픽을 보내기전에 호스트와 경로가 모두 일치해야 한다.
  • 백엔드 : 서비스와 포트이름의 조합

 

  1. 호스트
    1. 정확한 일치 : (ex. Foo.bar.com)
    2. 와일드카드 : (ex. *.bar.com)
  2. 경로목록
    1. ImplementationSpecific : 경로의 일치 여부는 ingressclass 따라 달라진다.
    2. Exact : URL경로의 대소문자를 엄격히 일치.
    3. Prefix : URL경로의 "/" 기준으로 분리한 값와 일치시킨다.
  3. 백엔드
    1. DefaultBackend : 규칙이 없는 모든 트래픽을 defaultBackend 전송한다.
    2. Resource 백엔드 : 인그레스 오브젝트와 동일한 네임스페이스 내에 있는 다른 쿠버네티스 리소스에 대한 ObjectRef 이다.
    3. 백엔드 확인방법 : kubectl describe ingress ingress-resource-backend

 

 

참고 : kubernetes 홈페이지 개념 참고

반응형

댓글