Traefik は『コンテナと自動連携する Proxy』
Traefik は Docker/k8s 等のコンテナオーケストレーションと自動連携するモダンな Proxy です。本記事では編集部の視点で、実務での使い方を公開情報をもとに整理します。Nginx チューニング もご参考に。
主要な特徴
(1) 自動 Service Discovery。(2) Let's Encrypt 自動化。(3) 動的設定:再起動不要。(4) ダッシュボードUI。(5) マルチ providers:Docker/k8s/Consul 等。
Docker での利用
(1) labels で設定。(2) traefik コンテナのみ起動。(3) 新規コンテナ起動で自動ルーティング。(4) compose.yamlで完結。(5) 小規模アプリに最適。Docker Compose 実践 もご参考に。
Kubernetes Ingress として
(1) IngressRoute CRD。(2> 標準 Ingress 互換。(3) Middleware:認証/圧縮等。(4) TraefikService:高度ルーティング。(5) Helm でデプロイ。k8s Helm 実践 もご参考に。
Let's Encrypt 統合
(1) ACME 自動更新。(2) HTTP-01/DNS-01 チャレンジ。(3) Wildcard 証明書対応。(4) 証明書保存:acme.json。(5) 運用負荷ゼロ。
Middleware
(1) Basic Auth。(2) Rate Limit。(3) Compress:gzip。(4) Headers:CORS/HSTS。(5) Custom plugins:Yaegi。API レート制限 もご参考に。
セキュリティ
(1) Dashboard 認証必須。(2) HTTPS Redirect。(3) HSTS。(4) Forward Auth:OAuth2 Proxy 連携。(5) 監査ログ。Web セキュリティ実践 もご参考に。
監視と運用
(1) Prometheus エクスポート。(2) Access Log:JSON 出力。(3) OpenTelemetry 連携。(4) ヘルスチェック。(5) graceful shutdown。Observability 実践 もご参考に。
Nginx / Envoy との比較
(1) Nginx:シンプル・実績豊富。(2) Envoy:機能豊富・Service Mesh。(3) Traefik:コンテナと自動連携。(4) 選び方:規模と要件。(5) 中小規模に最適。Envoy Proxy 実践 もご参考に。
失敗しがちなパターン
(1) Dashboard 公開:セキュリティ。(2) label 命名混乱。(3) acme.json バックアップなし。(4) middleware 過剰。(5) 大規模で性能限界。対策は、(1)basic auth、(2)Style Guide、(3)定期バックアップ、(4)必要最小、(5)Envoy 検討、です。