2021年4月11日日曜日

nginx-ingress-controller でデプロイするノードを固定する方法

nginx-ingress-controller でデプロイするノードを固定する方法

概要

helm を使って k8s/nginx-ingress-controller をデプロイしている場合に nginx の Pod がデプロイされるホストはデフォルトではランダムで決定します
ノードが複数あり Ingress を NodePort で動作させている場合には Ingress がデプロイされるノードによってアクセスする IP が変わるのでデプロイ先を固定にしたほうが扱いやすい場合があります

環境

  • k8s 1.20.4
  • nginx-ingress-controller 3.26.0

nodeSelector を使う

nginx-ingress-controller の values.yml で nodeSelector が指定できるようになっているのでそれを使うのが一番簡単です
helm install や upgrade 時に以下を指定しましょう

--set controller.nodeSelector."kubernetes\.io/hostname"="node1"

gitlab helm chart で指定する場合には

先頭に更に nginx-ingress を付与します

--set nginx-ingress.controller.nodeSelector."kubernetes\.io/hostname"="node1"

参考サイト

0 件のコメント:

コメントを投稿