コンテンツにスキップ

Traefik v2からv3へのマイグレーション

(2023.5.20更新)

Traefik v2からv3への移行時に一部の設定を変更する必要があります。

IPWhiteList

v3では、IPWhiteListミドルウェアをIPAllowListに名称変更しましたが、構成は何も変更していません。

gRPC メトリクス

v3では、gRPCリクエストの報告されるステータスコードはGrpc-Statusヘッダーの値になりました。

非推奨オプションの削除

  • pilotオプションは、静的設定から削除されました。
  • tracing.datadog.globaltagオプションは削除されました。
  • Consul、Consul Catalog、Nomadの各プロバイダーからnamespaceオプションが削除されました。
  • ForwardAuthミドルウェア、および HTTP、Consul、Etcd、Redis、ZooKeeper、Marathon、Consul Catalog、Dockerの各プロバイダーからtls.caOptionalオプションが削除されました。
  • Headersミドルウェアから sslRedirectsslTemporaryRedirectsslHostsslForceHostfeaturePolicyオプションが削除されました。
  • StripPrefixミドルウェアからforceSlashオプションが削除されました。
  • preferServerCipherSuitesオプションが削除されました。

Matcher

  • HeadersおよびHeadersRegexpmatcherはそれぞれ HeaderおよびHeaderRegexpに名称が変更されました。
  • QueryRegexpが導入され、正規表現を用いたクエリ値のマッチングが可能になりました。
  • HeaderRegexpHostRegexpPathRegexpQueryRegexpHostSNIRegexpの各matcherは、Go言語のregexp構文を使用するようになりました。
  • すべてのmatcherは、1つの値を取るようになり(但しHeadersHeaderRegexpQueryQueryRegexp は 2つ取ります)、以前の動作と同様に論理演算子を使用して明示的に結合する必要があります。
  • Queryは、値を持たないクエリ値(例: /search?mobile)にマッチする単一の値を取ることができます。
  • HostHeaderは削除されました。代わりにHostを使用してください。

Content-Typeの自動検出

v3では、バックエンドによって設定されていない場合、Content-Typeヘッダは自動検出されなくなりました。ContentTypeミドルウェアを使用して、Content-Typeヘッダー値の自動検出を有効にする必要があります。

HTTP/3

v3では、HTTP/3は実験的な機能ではなくなりました。experimental.http3オプションは、静的設定から削除されました。

TCP ServersTransport

v3では、TCPServersTransportのサポートが導入されました。そのため、KubernetesCRDプロバイダを使用する場合、RBAC および CRD マニフェストを更新する必要があります。

TCP LoadBalancerのTerminationDelayオプション

TCP LoadBalancerのterminationDelayオプションは削除されました。このオプションは、TCPServersTransportレベルで直接設定できるようになったので、こちらのドキュメントを参照してください。

Rancher v1

v3では、Rancher v1プロバイダーは削除されました。Rancher v1は活発にメンテナンスされておらず、v2は標準の Kubernetesプロバイダーとしてサポートされているからです。

Rancher 2.xはKubernetesを必要とし、Traefikがクエリするためのメタデータエンドポイントを持ちません。そのため、Rancher 2.xのユーザーはKubernetesのCRDプロバイダーを直接利用する必要があります。

Marathonプロバイダ

v3では、Marathonプロバイダが削除されました。

InfluxDB v1

v3では、InfluxDB v1.xのメンテナンスが2021年に終了したため、InfluxDB v1のメトリクスプロバイダは削除されています。

Kubernetes CRDs APIグループ traefik.containo.us

v3では、Kubernetes CRDsのAPIグループtraefik.containo.usは削除されました。代わりにAPIグループtraefik.ioを使用してください。

Docker & Docker Swarm

v3では、Dockerプロバイダが2つに分割されました。

  • Dockerプロバイダ(Swarm非対応)
  • Swarmプロバイダ(Swarmサポートのみ)