Wallarm Sidecarのアップグレード¶
本手順では、Wallarm Sidecarソリューションを最新の6.xバージョンにアップグレードする手順を説明します。
要件¶
-
Kubernetes platform version 1.19-1.29
-
Helm v3 package manager
-
An application deployed as a Pod in a Kubernetes cluster
-
Access to
https://us1.api.wallarm.com
for working with US Wallarm Cloud or tohttps://api.wallarm.com
for working with EU Wallarm Cloud -
Access to
https://charts.wallarm.com
to add the Wallarm Helm charts -
Access to the Wallarm repositories on Docker Hub
https://hub.docker.com/r/wallarm
-
Access to the IP addresses and their corresponding hostnames (if any) listed below. This is needed for downloading updates to attack detection rules and API specifications, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers
-
Access to the account with the Administrator role in Wallarm Console for the US Cloud or the EU Cloud
手順1: Wallarm Helmチャートリポジトリを更新します¶
手順2: 反映されるK8sマニフェストの変更点を確認します¶
Sidecarの動作が想定外に変わることを避けるため、Helm Diff Pluginを使用して、今後適用されるK8sマニフェストの変更点を確認します。このプラグインは、現在デプロイされているSidecarのバージョンと新しいバージョンのK8sマニフェストの差分を出力します。
プラグインをインストールして実行するには次のとおりです:
-
プラグインをインストールします:
-
プラグインを実行します:
helm diff upgrade <RELEASE_NAME> -n wallarm-sidecar wallarm/wallarm-sidecar --version 6.4.0 -f <PATH_TO_VALUES>
<RELEASE_NAME>
はWallarm SidecarのHelmリリース名です。wallarm-sidecar
はWallarm Sidecarソリューションがデプロイされているnamespaceです。弊社のデプロイガイドに従う場合、通常はwallarm-sidecar
に設定されています。-
<PATH_TO_VALUES>
はSidecar Helmチャート6.xの設定を含むvalues.yaml
ファイルへのパスです。Tarantoolからwstoreへの移行に合わせて更新すれば、以前のバージョンのファイルを再利用できます:Helmの値名が変更されました:
postanalytics.tarantool
→postanalytics.wstore
。postanalyticsメモリを明示的に割り当てている場合は、values.yaml
にこの変更を適用してください。
-
稼働中のサービスの安定性に影響する変更がないことを確認し、stdoutに出力されるエラーを注意深く確認します。
stdoutが空の場合は、
values.yaml
ファイルが有効であることを確認します。
リリース 4.10.7では互換性に破壊的な変更が導入されたため、ソリューションの再インストールが必要となります。admission webhook証明書の生成デフォルト方式はcertgen
プロセスに置き換えられました。アップグレード中に、新しいcertgen
プロセスにより証明書が自動生成されます。
リリース4.10.7では互換性を破る変更が導入され、ソリューションの再インストールが必要になりました。admission webhook証明書の生成方法の既定がcertgen
プロセスに置き換えられています。アップグレード中は、新しいcertgen
プロセスを使用して証明書が自動生成されます。
さらに、このリリースでは、admission webhook証明書のプロビジョニングにcert-manager
を使用する、または証明書を手動で指定することが可能です。
手順3: 以前のバージョンのソリューションをアンインストールします¶
手順4: 既存の証明書アーティファクトを削除します¶
kubectl delete MutatingWebhookConfiguration <RELEASE_NAME>-wallarm-sidecar
kubectl delete secret <RELEASE_NAME>-wallarm-sidecar-admission-tls -n wallarm-sidecar
手順5: 新しいソリューションバージョンをデプロイします¶
helm install --version 6.4.0 <RELEASE_NAME> wallarm/wallarm-sidecar --wait -n wallarm-sidecar -f <PATH_TO_VALUES>
-
<RELEASE_NAME>
はHelmリリース名です。ソリューションの初回デプロイ時に使用した名前を再利用することを推奨します。 -
wallarm-sidecar
はHelmリリースをデプロイするnamespaceです。ソリューションの初回デプロイ時に使用したnamespaceを再利用することを推奨します。 -
<PATH_TO_VALUES>
はSidecar Helmチャート6.xの設定を含むvalues.yaml
ファイルへのパスです。Tarantoolからwstoreへの移行に合わせて更新すれば、以前のバージョンのファイルを再利用できます:Helmの値名が変更されました:
postanalytics.tarantool
→postanalytics.wstore
。postanalyticsメモリを明示的に割り当てている場合は、values.yaml
にこの変更を適用してください。
手順6: Sidecar ProxyがアタッチされたDeploymentを再起動します¶
既にアプリケーションPodにインジェクトされているプロキシコンテナをアップグレードするには、該当するDeploymentを再起動します:
-
<DEPLOYMENT_NAME>
はアプリケーションのDeployment名です -
<NAMESPACE>
はそのDeploymentが存在するnamespaceです
バージョン4.10.7以上からのアップグレード¶
手順3: Sidecarソリューションをアップグレードします¶
デプロイ済みのSidecarソリューションのコンポーネントをアップグレードします:
helm upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-sidecar --version 6.4.0 -f <PATH_TO_VALUES>
-
<RELEASE_NAME>
: デプロイ済みSidecarチャートのHelmリリース名です -
<NAMESPACE>
: Sidecarがデプロイされているnamespaceです -
<PATH_TO_VALUES>
はSidecar Helmチャート6.xの設定を含むvalues.yaml
ファイルへのパスです。Tarantoolからwstoreへの移行に合わせて更新すれば、以前のバージョンのファイルを再利用できます:Helmの値名が変更されました:
postanalytics.tarantool
→postanalytics.wstore
。postanalyticsメモリを明示的に割り当てている場合は、values.yaml
にこの変更を適用してください。
手順4: Sidecar ProxyがアタッチされたDeploymentを再起動します¶
既にアプリケーションPodにインジェクトされているプロキシコンテナをアップグレードするには、該当するDeploymentを再起動します:
-
<DEPLOYMENT_NAME>
はアプリケーションのDeployment名です -
<NAMESPACE>
はそのDeploymentが存在するnamespaceです
アップグレード後のSidecarソリューションをテストします¶
-
Helmチャートのバージョンがアップグレードされたことを確認します:
wallarm-sidecar
はSidecarがデプロイされているnamespaceです。namespaceが異なる場合は、この値を変更できます。チャートバージョンは
wallarm-sidecar-6.4.0
である必要があります。 -
Wallarmコントロールプレーンの詳細を取得し、正常に起動していることを確認します:
各Podには次が表示されている必要があります: READY: N/N および STATUS: Running。例:
-
アプリケーションクラスターのアドレスにテスト用のパストラバーサル攻撃を送信します:
対象のアプリケーションPodには
wallarm-sidecar: enabled
ラベルが付与されている必要があります。新しいバージョンのソリューションが、前のバージョンと同様に悪意のあるリクエストを処理することを確認します。