高可用性に関する考慮事項(NGINXベースIngressコントローラ)¶
この記事では、Wallarm Ingressコントローラを高可用性化し、ダウンタイムを防止するための構成推奨事項について説明します。
Other recommendations
Wallarm’s version of the Kubernetes Ingress controller is based on the community-supported NGINX Ingress controller for Kubernetes, so the majority of recommendations found in the official Ingress controller documentation and on the public Internet are also applicable to Wallarm’s Ingress controller.
Recommended reading:
構成推奨事項¶
以下の推奨事項は、本番環境など重要な環境に該当します。
-
複数のIngressコントローラポッドインスタンスを使用します。この動作は、
values.yaml
ファイル内の属性controller.replicaCount
で制御します。例えば:
-
KubernetesクラスターがIngressコントローラポッドを異なるノードに配置するよう強制します。これにより、ノード障害時にIngressサービスのレジリエンスが向上します。この動作は、Kubernetesのpodアンチアフィニティ機能を使用しており、
values.yaml
ファイルに設定されています。例えば:
-
予期しないトラフィック急増やその他の条件によりKubernetesのhorizontal pod autoscaling (HPA)機能の使用が正当化されるクラスターでは、
values.yaml
ファイルで以下のように有効化できます:
-
Tarantoolデータベースを利用したWallarmのpostanalyticsサービスを少なくとも2インスタンス実行します。これらのポッドは名前に
ingress-controller-wallarm-tarantool
を含みます。この動作は、values.yaml
ファイル内の属性controller.wallarm.tarantool.replicaCount
で制御します。例えば:
構成手順¶
これらの構成を設定するには、helm install
およびhelm upgrade
コマンドの--set
オプションを使用することが推奨されます。例えば:
helm install --set controller.replicaCount=2 <INGRESS_CONTROLLER_RELEASE_NAME> wallarm/wallarm-ingress -n <KUBERNETES_NAMESPACE>
正しいIngressコントローラのインストールにはその他のパラメータも必要です。これらも--set
オプションで渡してください。