본문 바로가기
🌴 DevOps/Docker & K8s

쿠버네티스 ingress 구성 (1/3) -ingress (인그레스) 개념

by 카프리썬_ 2020. 5. 24.
728x90

앞에서 외부랑 통신하는 방법들은 Layer4단에서 처리하는 방식

1. clusterIP/kube-proxy

2. nodeport

3. loadbalancer

 

이들과는 다르게 ingress는
서비스의 한 종류가 아닌 컨트롤러(ingress-controller)가 직접 수행하는 외부와 통신

즉, 여러 서비스들은 같은ip 주소로 외부에 노출할때 가장 유용한 방법

출처 https://blog.leocat.kr/notes/2019/08/22/translation-kubernetes-nodeport-vs-loadbalancer-vs-ingress

 

ingress (인그레스)

클러스터 외부-> 내부로 접근하는 요청을 어떻게(Layer7단에서) 처리할지 정의한 규칙들의 모임

(참고) egress(이그레스) : 서버 내부-> 외부로 나가는 트래픽 

 

어떤 규칙들?

  • 외부에서 접근가능한 url이 어떤건지
  • 트래픽을 어떻게 로드밸런싱할지
  • SSL/TLS 인증서를 어떻게 적용할지
  • IP가 아닌 도메인기반으로 어떻게 주소처리를 할지 

즉, 외부가 쿠버네티스에서 실행중인 deployment와 서비스에 접근하기 위한 일종의 관문(Gateway)

 

ingress를 사용하지 않으면? Layer4단에서 네트워크 요청을 처리하는 수준

외부요청을 nodeport, externalIP가 처리,
네트워크에 대한 세부적인 처리로직을 구현하는데는 한계가 있다 

 

따라서, 서비스를 외부로 노출시켜서 제공하고 싶으면 ingress를 사용해한다

 

ingress를 사용하기 위해서 필요한것 

1. ingress 오브젝트(yaml파일) : 네트워크 요청을 어떻게 처리할지 규칙 정의

2. ingress 컨트롤러 : 정의한 ingress 규칙을 실제로 동작하게 해줌

 

ingress object(yaml파일)

출처 https://blog.naver.com/alice_k106/221502890249

host : ingress 규칙을 적용하기 위해 외부에서 접근을 요청 할 호스트명

http : Layer7단에서 적용할 프로토콜
path : 외부에서 접근을 요청할 경로

backend / serviceName : 쿠버네티스에서 받을 서비스명
backend / servicePort : 쿠버네티스에서 받을 서비스포트

 

단지, 규칙을 정의하는 yaml파일을 선언한 것일뿐. 

실제로 이 규칙을 수행하는건 컨트롤러
그래서 컨트롤러가 없으면 실제로 동작하지 않음 

 

즉, ingress controller가 외부로부터 요청을 받으면 어떻게 수행할지 정의한 ingress 규칙에 의해서 동작

ingress controller 

ingress 규칙을 실제로 동작하게 해주는 컨트롤러

쿠버네티스에서 제공하는 컨트롤러는?

1) ingress-gce : 구글클라우드를 사용한다면 제공해주는 컨트롤러 (자동으로 사용가능)

2) ingress-nginx : 그 외의 클라우드 또는 온프레미스 환경에서 사용한다면 제공해주는 컨트롤러(직접설치)
(https://github.com/kubernetes/ingress-nginx)

ingress로 설정된 내용을 nginx 환경설정으로 변경해서 nginx로 적용

 

사전환경 

kops로 클러스터를 구성한 상태

https://pearlluck.tistory.com/166?category=854934

 

쿠버네티스 환경구성(kops.ver)(1/2) -클러스터/노드 구성

테스트환경 aws ec2 인스턴스에서 도커컨테이너 (우분투16.04)사용 (추가) 이미 컨테이너 생성한 후라면, 해당 컨테이너에 접속하기 ▼▼▼ docker 명령어 참고 ▼▼▼ 컨테이너 검색 : docker -ps | grep k

pearlluck.tistory.com

 

 

참고 

https://blog.naver.com/alice_k106/221502890249

 

162. [Kubernetes] 1편 : 쿠버네티스 Ingress 개념 및 사용 방법, 온-프레미스 환경에서 Ingress 구축하기

이번 포스트에서는 쿠버네티스에서 인그레스 (Ingress) 를 사용하는 방법, 그리고 Public 클라우드를 쓰...

blog.naver.com

참고

https://gruuuuu.github.io/cloud/k8s-service/#

 

Kubernetes Service & Ingress

1. Overview이번 문서에서는 Kubernetes(k8s)의 Service와 Ingress에 대해서 알아보겠습니다.2. Prerequisites본문에서 사용한 spec :OS : CentOS v7.6Arch : x86k8s클러스터는 1마스터 2노드로 구성했습니다.Master : 4cpu, ram

gruuuuu.github.io

https://arisu1000.tistory.com/27840

 

쿠버네티스 인그레스(kubernetes ingress)

인그레스(ingress)는 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙들의 모음입니다. 외부에서 접근가능한 URL을 사용할 수 있게 하고, 트래픽 로드밸런싱도 해주고

arisu1000.tistory.com

 

반응형