Skip to content
Latchkey

Traefik vs Nginx Ingress: K8sのIngress選び

TraefikはネイティブなCRDとmiddlewareを備えた動的なingress controller。Nginx Ingress Controllerは、実績あるNginxをKubernetesのIngressの背後にラップします。

どちらもKubernetesのingress controllerです。TraefikはIngressオブジェクトと独自のIngressRoute CRDを通じてルーティングを動的に設定し、middleware、dashboard、自動TLSを提供します。Nginx Ingress ControllerはIngressリソースとannotationからNginxの設定を生成し、Nginxの成熟度とパフォーマンスに依拠します。TraefikはモダンなCRD駆動モデルを、Nginx Ingressは実証済みのNginxの挙動を重視します。

TraefikNginx Ingress
設定モデルIngress + CRDIngress + annotation
Middlewareネイティブannotation/snippet経由
TLS自動cert-manager
成熟度モダン非常に広く導入済み
最適な用途CRD駆動の動的ルーティングK8sでの実証済みNginx

ユースケースと設定

Traefikは、ネイティブなCRD、middleware、TLS自動内蔵のクリーンな動的モデルを求めるチームに適しています。Nginx Ingressは、Nginxの挙動、最大のコミュニティ、annotationや設定snippetによるきめ細かい制御を求めるチームに適しており、通常はTLSのためにcert-managerと組み合わせます。

CIとdeployにおいて

どちらもHelmでインストールします。CIでmanifestを検証し、kindクラスタに対してsmoke testを実行しましょう。いずれもマネージドrunnerからdeployでき、より高速なrunnerはHelmインストールとクラスタベースの統合テストを高速化します。

結論

ネイティブなCRD、middleware、TLS内蔵の動的設定ならTraefik。実証済みのNginxの挙動、最も広いコミュニティ、annotationベースの制御ならNginx Ingress。どちらも堅実なデフォルトです。TraefikのCRDを好むか、慣れ親しんだNginxのセマンティクスを好むかで選びましょう。

関連ガイド