EKS 환경의 pod에 고정 ip 할당하기

Viva의 놀이터·2022년 2월 3일
0
post-thumbnail

EKS환경의 pod에 고정 IP 할당하기

프로젝트 진행중 도메인이 아닌 ip로 서버에 붙어야 되는 상황이 생겼다.
가능하면 아래의 방법 말고 도메인으로 붙는 것을 최선으로 생각하자! 지금은 도메인 말고 꼭 ip로 붙어서 아래와 같은 방법을 사용했다.

프로젝트의 환경이 EKS 환경이고 pods가 생성 될 때 마다 ip가 변하는 문제가 있어 pods에 직접 고정적인 ip를 할당하기 힘들어 생각한 대안이
pods 앞에 aws의 alb를 두고 사용하고 있어 해당 alb에 고정 ip를 할당하고자 하였다.

하지만 아쉽게도 alb에는 직접 ip를 할당하지 못하는 이슈가 있었다. 구글링을 해보니 alb에 고정 ip를 할당하기 위해서는

https://aws.amazon.com/ko/blogs/korea/using-static-ip-addresses-for-application-load-balancers/

아래와 같은 방법으로 고정 ip를 할당해야한다고 한다.

아무리 생각해도 이건 아닌것 같아 최신 aws 블로그를 찾아봤다.

https://aws.amazon.com/ko/blogs/networking-and-content-delivery/application-load-balancer-type-target-group-for-network-load-balancer/

필요한 것 :

  1. 고정ip (elastic ip)
    고정ip를 할당 받기위해서 사용

  2. nlb
    고정ip를 할당 받는 주체이다. 할당받은 고정된 ip로 들어오는 요청을 alb로 전달해주는 역할을 한다.

  3. alb (k8s의 ingress controller가 alb로 설정되어 있고 이미 생성되어 있는 것을 전제로 한다.)
    nlb에서 전달받은 요청을 k8s에 등록된 pods에 전달하는 역할을 한다.

  4. target group
    nlb에서 alb로 전달할 때 전달 받는 alb를 target group으로 등록하여 전달 받을 대상을 재정의하는 역할을 한다.

작업 순서:

  1. 고정ip를 할당 받는다.

  2. nlb를 생성한다.

2-1. target 그룹을 생성하고 alb를 등록시킨다.


특이점

  1. nlb는 http 통신이 불가능하고 tcp 통신만 가능하다.

  2. spring에서 health check api를 만들어주는 gradle을 발견하였다.

아키텍쳐

profile
역사를 잊은 기술에겐 미래가 없다

0개의 댓글