You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Rancher 에서 복수개의 컨테이너 관리를 할수 있지만,  도메인 규칙에따라 컨테이너에 연결하는 기능은 포함되어 있지않다.

로드 밸런싱이 포함하여 이러한 기능은 하드웨어 혹은 소프트웨어 레벨에서 처리할수 있으며  (  하드웨어 레벨 L5 , 소프트웨어 레벨 L7 으로 구분되기도 한다.) 

L5에 대표적인 솔류션으로 BigIP가 있으며 L7에는 Nginx/Haproxy 등이 있다. AWS에서는 ELB 가 제공되기도 한다.


여기서는 온프레미스에서 소규모 네트워크이기때문에 Nginx 에 Admin기능을 입힌 Nginx Proxy Manager를 사용할것이다.

소규모 개발환경에서도 Proxy가 중요한 이유는 ,먼저 Proxy관리가 없는 환경을 생각해보자


  • 도메인 설정이 산발적으로 되어, 개발환경의 전체 레이아웃을 볼수가 없다. -Bad
  • 개발 도메인 신청에서 적용까지 , 정책과 신청과정으로 개발보다 더 많이 걸리는 경우도 허다하게 경험하였다 - Bad
  • 관리가 어렵다고 해서, 도메인 개발환경을 포기한 경우,  그냥 Ip:port기반으로 제공하고 Hostfile을 수정하여 Qa 환경을 셋팅하는것은 처음에는 유용한것같지만,가장 최악의 상황이된다. - Too Bad

3번째 상황이 왜 가장 최악의 상황이되냐하면, Hostfile은 로컬에서 지정하여 구동되는 환경이여서 관리및 통제가 안되며 크로스도메인 문제를 해결하기위해 운영과 다른 코드처리까지 필요한 상황이된다.

Nginx Proxy Manager




version: '2'
services:
  nginx:
    image: jlesage/nginx-proxy-manager
    restart: always
    volumes:
      - /docker/appdata/nginx-proxy-manager:/config:rw
    ports:
      - 8080:8181/tcp
      - 8081:8080/tcp
    labels:
      io.rancher.scheduler.affinity:host_label: server=main
      io.rancher.container.hostname_override: container_name

초기 계정

더자세한 기능 참고 : https://github.com/jlesage/docker-nginx-proxy-manager


위 도커 슼크립트를 추가하게 되면, Rancher에서 server가 main 인 인스턴스 한곳에 proxy 서버가 구동되게 된다.

참고로 label에따라 2중화를 포함하여 무중단 배포도 가능하다. 명령예> apitype이 api인곳에 2 인스턴스를 뛰워라 



  • No labels