Traefik được sử dụng như một reverse proxy và load balance.
Trong docker, Traefik có thể sử dụng để load balance HTTP traffic giữa các container. Traefik hỗ trợ nhiều backend provider để tự động config environment như ports, protocol... Khi các services hoặc container được add/remove , traefik sẽ thay đổi (reshape) traffic cho phù hợp với những sự thay đổi này.
Một vài điểm lưu ý:
Load balancer được config để listen trên port 80 (http) và 443 (https) và một dashboard trên port 8080.
Việc sử dụng docker.sock cho phep traefik lắng nghe Docker daemon, và cập nhật các sự thay đổi như add/remove/restart các services, container ... Ngoài ra nó còn cho phép traefik tìm metadata về các container, ví dụ như tên của process chạy chúng.
traefik.backend: backend được sử dụng cho services
traefik.port: register port cho service.
traefik.protocol: xác dịnh protocol, default sử dụng http protocol.
traefik.docker.network: set network được sử dụng cho các kết nôí tới container.
Trong docker, Traefik có thể sử dụng để load balance HTTP traffic giữa các container. Traefik hỗ trợ nhiều backend provider để tự động config environment như ports, protocol... Khi các services hoặc container được add/remove , traefik sẽ thay đổi (reshape) traffic cho phù hợp với những sự thay đổi này.
Một vài điểm lưu ý:
1. Một ví dụ để tạo load balance với docker-compose file:
traefik:
image: traefik
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
Load balancer được config để listen trên port 80 (http) và 443 (https) và một dashboard trên port 8080.
Việc sử dụng docker.sock cho phep traefik lắng nghe Docker daemon, và cập nhật các sự thay đổi như add/remove/restart các services, container ... Ngoài ra nó còn cho phép traefik tìm metadata về các container, ví dụ như tên của process chạy chúng.
2. Các labels:
traefik.frontend.rule: assign cả internal và public domains để truy cập vào service/container.traefik.backend: backend được sử dụng cho services
traefik.port: register port cho service.
traefik.protocol: xác dịnh protocol, default sử dụng http protocol.
traefik.docker.network: set network được sử dụng cho các kết nôí tới container.