반응형

지난 포스팅에 쿠버네티스 ingress 를 올려서 내부 nginx service에 접근하는 것을 했다.

아키텍처

필자가 생각하고 있는 것은 위 아키텍처와 같다.(다음포스팅은 로드밸런서 등록)

쿠버네티스 노드는 private network ip 만을 가지고 프라이빗 통신을 하고,

proxy server 는 외부망에서 들어온 요청을 private network 망에 있는 쿠버네티스에 전달한다.

 

편의상(귀찮아서) proxy server 가 될 곳에는 NFS서버, Rancher 도 있다.ㅋㅋㅋ

 

Public IP 제거

먼저 kube vm 에 있는 public ip를 모두 제거했다.

위 사진처럼 쿠버네티스 vm 들은 public ip 가 모두 제거된 상태!

 

nginx 설치

$ apt-get install nginx -y

 

nginx config 설정

80,443 portrancher에서 사용중이기 때문에 81번으로 설정했다.

$ vi /etc/nginx/conf.d/k8s.conf
upstream k8s {
  server 10.2.0.5:80;
  server 10.2.0.6:80;
  server 10.2.0.8:80;
}
server {
  listen  81;
  #server_name ;

  location / {
    proxy_pass http://k8s;
  }

  error_page  500 502 503 504  /50x.html;
  location = /50x.html {
    root  /usr/share/nginx/html;
  }
}

nginx.conf 파일을 보면 conf.d 폴더 안의 *.conf 를 include 하는 code가 있어서 바로 생성해주었다.

config check

$ nginx -t

 

애저 인바운드 룰 추가

테스트

 

이걸로 외/내부망이 분리된 환경이 된것이다.

 

다음 포스팅에는 마지막으로 Azure Load Balancer 를 추가하여

로드밸런서 규칙 추가를 적용하겠다.

 

끝!

반응형
복사했습니다!