koukiblog

たぶんweb系の話題

Nginx Ingress Controllerには2つの実装があるので注意

はじめに

Nginx Ingress Controllerには2つの実装があります。

Kubernetesチーム管理のkubernetes/ingress-nginx(以下ingress-nginx) github.com

Nginxチーム管理のnginx/kubernetes-ingress(以下nginx-ingress)

github.com

ingress-nginx, nginx-ingressと呼び分けているのは、両者のドキュメントで Helmを利用したインストール方法でnameとして採用されているからです。

2つの違い

Nginx側のレポジトリ にドキュメントがあります。

kubernetes-ingress/nginx-ingress-controllers.md at master · nginxinc/kubernetes-ingress · GitHub

基本的な設定は似ていますが、マニフェストの書き方が異なる箇所が多く互換性はありません。Nginxの商用製品を使う場合はnginx-ingressが必須です。

ingress-nginxに関するドキュメントは、 kubernetes.github.ioでホストされています。 kubernetes.github.io

nginx-ingressは、docs.nginx.com でホストされています。 docs.nginx.com

annotationなど設定値で検索すると両者がヒットするとこがあるので、間違えないように気を付ける必要があります。

stable/nginx-ingress について

古い記事では、下記のように stable/nginx-ingressを利用する記述がありますが、stable/nginx-ingress はDeprecatedになっており、新規で利用してはいけません

helm install stable/nginx-ingress

stable/nginx-ingressKubernetesコミュニティの Ingress Controller なので、移行先は ingress-nginx です。

https://github.com/helm/charts/tree/master/stable/nginx-ingress