2021年6月11日金曜日

Gitlab の nginx-ingress を hostNetwork=true で使っていて再起動すると Address already in use になる問題を解決する方法

Gitlab の nginx-ingress を hostNetwork=true で使っていて再起動すると Address already in use になる問題を解決する方法

概要

原因は gitlab-shell が 22 番ポートを使っており、ホストの ssh ポトと被っているために nginx-ingress が再起動できなくなります

環境

  • helm v3.5.2
  • k8s v1.20.1
  • nginx-ingress v0.46.0

対応方法

gitlab-shell のポートを 22 から別のポートに変更します

--set nginx-ingress.controller.hostNetwork=true \
--set nginx-ingress.controller.service.type="" \
--set nginx-ingress.controller.kind=DaemonSet \
--set nginx-ingress.controller.service.externalTrafficPolicy="" \
--set gitlab.gitlab-shell.service.externalPort=1022 \

これで helm upgrade してあげれば再起動に成功するはずです

P.S

どうやら nginx-ingress-controller が再起動できない原因は Address already in use ではなく ConfigMap の設定がうまく反映されずエラーとなり常に再起動しているのが原因のようです

Gitlab 側のバグの可能性が高そうですが詳細な原因は不明です

参考サイト

0 件のコメント:

コメントを投稿