Traefik


Traefik

https://traefik.io/

https://docs.traefik.io/  : 아주 기본적인  실습

https://docs.traefik.io/basics/ : 전체적인 설명임. entrypoints, frontends, backends 구성 설명함.

Architecture

https://docs.traefik.io/configuration/backends/docker/ :  docker backend 설정


swarm mode cluster 관련한 예제 : https://docs.traefik.io/user-guide/swarm-mode/

troubleshooting

traefik 의 명령어 옵션에 --logLevel=DEBUG 추가를 해서 디버그 메시지를 볼 수 있도록 하였음.

stack deploy 이용할 경우 traefik.port 등은 deploy 에 지정을 해야 함. (service labels와 container labels가 다름. https://docs.docker.com/compose/compose-file/#labels-1 참고.

여러 개의  networks에 속한 counter 서비스의 경우 labels에 traefik.docker.network 를 지정해 주어야 통신이 가능함. stack deploy를 할 경우 prefix로 stack 이름이 붙는데 이걸 변수로 처리하는것은 아직 잘 모르겠다. (  com.docker.stack.namespace label 로 나오기는 하는데 어떻게 써야하는지는 모르겠음) https://docs.traefik.io/configuration/backends/docker/#on-containers

traefik 과 연동을 할때 docker service 를 이용하면 자동으로 해당 서비스명 도메인을 만든다. 그런데  stack deploy 이용할 경우 prefix로 stack 이름이 붙으므로 traefik.frontend.rule 을 지정하여 처리하면 된다.

service 에서  --label traefik.port 와 -p 옵션을 쓰는 경우 -p에서 지정한 포트로는 접속을 할 수 있지만 traefik 을 통해서 접속은 안 되었다.