---
schema_version: "1"
id: 4c3756be19b228eda8e1a8525a67229b49051f76a0f35ada03de1550970e0786
title: Flex Gateway レプリカの自動スケーリングおよび名前空間への追加
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/gateway/1.8/flex-gateway-k8-high-availability.md
canonical_url: https://docs.mulesoft.com/jp/gateway/1.8/flex-gateway-k8-high-availability
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 33a19b6dc57f3f3552319d9bbc9b4bc5fcf07ae5ee13c1604b29395057e320fc
description: MuleSoft Documentation Site
release: "1.8"
latest: false
---
# Flex Gateway レプリカの自動スケーリングおよび名前空間への追加

高可用性 (HA) 環境では、水平スケーリングにより負荷が複数の Flex Gateway インスタンスに分散されます。デフォルトでは、Flex Gateway の Helm チャートは 1 つのレプリカで設定されます。より多くの Flex Gateway レプリカを名前空間にリリースするには、次のいずれかの設定を提供します。

- [レプリカ数を設定する](#replica-count)​: 作成する Flex Gateway レプリカの固定数を設定します。
- [自動スケーリングを設定する](#autoscale)​: CPU、メモリ、およびその他の設定に基づいてレプリカを自動的に生成します。

次のいずれかの方法で、Flex Gateway (flex-gateway) のデフォルトの Helm チャート設定を見つけます。

- [ArtifactHUB](https://artifacthub.io/packages/helm/flex-gateway/flex-gateway)​ の ​**flex-gateway**​ ページを開く
- ターミナルウィンドウから ​`helm show values <helm-repository-name>/<helm-chart-name>`​ を実行する (例: `helm show values flex-gateway/flex-gateway`​)。

## [](#始める前に)始める前に

次の前提条件が準備されていることを確認します。

- Flex Gateway デプロイメントまたは登録済み Flex Gateway インスタンス (ゲートウェイ)
    
    ゲートウェイの登録およびデプロイメントプロセスについては、​[Flex Gateway のセットアップ](https://docs.mulesoft.com/jp/gateway/1.8/flex-gateway-set-up) or [Kubernetes クラスターでの Flex Gateway の使用開始](https://docs.mulesoft.com/jp/gateway/1.8/flex-gateway-k8-getting-started)​を参照してください。
- Flex Gateway デプロイメント用の Kubernetes クラスター

## [](#replica-count)レプリカ数を設定する

必要なレプリカの数を設定して検証します。新しいレプリカで既存のレプリカは置き換えられます。Flex Gateway の新しいバージョンが使用可能な場合、このコマンドにより古いレプリカバージョンが最新バージョンに置き換えられます。

実行する手順は、Helm チャートがインストールされているかどうかにより異なります。

1. 名前空間の Helm チャートがインストールされている場合、次のコマンドを実行します。
    
    構文:
    
    helm -n <namespace> upgrade \\
    <release-name> <helm-repository-name>/<helm-chart-name> \\
    --reuse-values \\
    --set replicaCount=<number of replicas>
    
    例:
    
    ```helm
    helm -n gateway upgrade \
    ingress flex-gateway/flex-gateway \
    --reuse-values \
    --set replicaCount=2
    ```
    
    正常に終了すると、このコマンドでは次の例のような出力が印刷されます。
    
    Release "ingress" has been upgraded. Happy Helming!
    NAME: ingress
    LAST DEPLOYED: Mon Apr 17 15:00:09 2023
    NAMESPACE: gateway
    STATUS: deployed
    REVISION: 27
    TEST SUITE: None
2. Helm チャートがインストールされていない場合、次のコマンドを実行します。
    
    構文:
    
    helm -n <namespace> \\
    upgrade -i --create-namespace \\
    <release-name> <helm-repository-name>/<helm-chart-name> \\
    --set-file registration.content=<registration file> \\
    --set replicaCount=<number of replicas>
    
    例:
    
    ```helm
    helm -n gateway \
    upgrade -i --create-namespace \
    ingress flex-gateway/flex-gateway \
    --set-file registration.content=registration.yaml \
    --set replicaCount=2
    ```
    
    正常に終了すると、このコマンドでは次の例のような出力が印刷されます。
    
    Release "ingress" does not exist. Installing it now.
    NAME: ingress
    LAST DEPLOYED: Mon Apr 17 15:32:50 2023
    NAMESPACE: gateway
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
3. 次のコマンドを実行して、レプリカの作成を検証します。
    
    構文:
    
    kubectl get rs -n <namespace>
    
    例:
    
    kubectl get rs -n gateway
    
    正常に終了すると、このコマンドでは次の例のような出力が印刷されます。
    
    NAME                  DESIRED   CURRENT   READY   AGE
    ingress-5b7474b8f6    2         2         2       70s

## [](#autoscale)自動スケーリングを設定する

水平ポッド自動スケーリングでは、CPU、メモリ、および対象と動作に関するその他の設定に基づいて Flex Gateway レプリカが自動的に生成されます。これらの設定についての詳細は、​[自動スケーリングパラメーター](#autoscaling-parameters)​を参照してください。

### [](#autoscaling-config)自動スケーリング設定を使用した Helm チャートの更新

自動スケーリングパラメーターを使用して Helm チャートを更新する手順は、次のとおりです。

1. 自動スケーリング設定を使用して YAML ファイルを作成し、要件に合わせて設定を変更します。
    
    例:
    
    ```yaml
    autoscaling:
      enabled: true
    ```
    
    <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">この設定ファイルは最小限の自動スケーリング設定です。より詳細な自動スケーリングを設定するには、​<a href="#autoscaling-parameters">自動スケーリングパラメーター</a>​を参照してください。</td></tr></tbody></table>
2. 名前空間の Helm チャートがインストールされている場合、次のコマンドを実行して自動スケーリング設定を適用します。
    
    構文:
    
    helm -n <namespace> upgrade \\
    <release-name> <helm-repository-name>/<helm-chart-name> \\
    --reuse-values \\
    -f <your-autoscaling-configuration-yaml>
    
    例:
    
    ```helm
    helm -n gateway upgrade \
    ingress flex-gateway/flex-gateway \
    --reuse-values \
    -f autoscaling.yaml
    ```
    
    正常に終了すると、このコマンドでは次の例のような出力が印刷されます。
    
    Release "ingress" has been upgraded. Happy Helming!
    NAME: ingress
    LAST DEPLOYED: Tue Apr 18 15:46:38 2023
    NAMESPACE: gateway
    STATUS: deployed
    REVISION: 33
    TEST SUITE: None
3. Helm チャートがインストールされていない場合、次のコマンドを実行して自動スケーリング設定を適用します。
    
    構文:
    
    helm -n <namespace> \\
    upgrade -i --create-namespace \\
    <release-name> <helm-repository-name>/<helm-chart-name> \\
    --set-file registration.content=<registration file> \\
    -f <your-autoscaling-configuration-yaml>
    
    例:
    
    ```helm
    helm -n gateway \
    upgrade -i --create-namespace \
    ingress flex-gateway/flex-gateway \
    --set-file registration.content=registration.yaml \
    -f autoscaling.yaml
    ```
    
    正常に終了すると、このコマンドでは次の例のような出力が印刷されます。
    
    NAME: ingress
    LAST DEPLOYED: Tue Apr 18 15:50:29 2023
    NAMESPACE: gateway
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
4. 次のコマンドを実行して、自動スケーリング設定を検証します。
    
    構文:
    
    ```kubectl
    kubectl get hpa -n <namespace>
    ```
    
    例:
    
    ```kubectl
    kubectl get hpa -n gateway
    ```
    
    このコマンドでは次の例のような出力が印刷されます。
    
    NAME     REFERENCE           TARGETS          MINPODS  MAXPODS  REPLICAS  AGE
    ingress  Deployment/ingress  66%/50%, 5%/50%  2        11       2         59s

### [](#autoscaling-parameters)自動スケーリングパラメーター

自動スケーリングを使用するには、Horizontal Pod Autoscaler (HPA) を有効にして、自動スケーリング動作を定義するための他の Helm チャート設定を定義します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 66.6667%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.enabled</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Horizontal Pod Autoscaler (HPA) が有効であるかどうかを示すブール値。デフォルトは ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.minReplicas</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>HPA スケーラーが作成できるレプリカの最小数。デフォルトは ​<code>2</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.maxReplicas</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>HPA スケーラーが作成できるレプリカの最大数。デフォルトは ​<code>11</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.targetCPUUtilizationPercentage</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デプロイされているすべてのポッドの平均 CPU 使用率を設定するリソースメトリクス。デフォルトは ​<code>50</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.targetMemoryUtilizationPercentage</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デプロイされているすべてのポッドの平均メモリ使用率を表す文字列。デフォルトは ​<code>nil</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.behavior</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Kubernetes で ​<code>HorizontalPodAutoscaler</code>​ (HPA) オブジェクトをサポートする設定。HPA 設定では、ワークロードの変更の割合に基づいてアプリケーションリソース数などの自動スケーリング動作を制御します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>autoscaling.behavior.scaleUp</code>, ​<code>autoscaling.behavior.scaleDown</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>HPA スケーラーでレプリカ数を増加 (​<code>scaleUp</code>​) または減少 (​<code>scaleDown</code>​) する場合の自動スケーリング動作の設定。ネストされたパラメーターを使用してスケーリング動作を定義します。</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>selectPolicy</code>​: スケーリングが必要であることが設定済みリソースのメトリクスで示された場合、この設定でポッドをスケーリングするタイミングを決定します。ポッドにはさまざまな数のレプリカが含まれる可能性があるため、この設定が必要です。有効な値は、​<code>Disabled (無効)</code>​、​<code>Min (最小)</code>​、​<code>Max (最大)</code>​ です。デフォルトは ​<code>Max (最大)</code>​ です。 ​<code>Min (最小)</code>​ と ​<code>Max (最大)</code>​ の値は、レプリカの最小数 (​<code>Min</code>​) または最大数 (​<code>Max</code>​) のどちらでポッドをスケーリングするかを示します。</p>
</li>
<li>
<p><code>stabilizationWindowSeconds</code>​: ワークロードの変更後にアプリケーションを再スケーリングするまで待機する最小時間 (秒数)。目的は、スケーリングの頻度が高すぎる場合に HPA による過度に積極的な応答や不安定な応答を回避することです。</p>
</li>
<li>
<p><code>policies</code>​: スケーリング動作を決定するポリシーのリスト。</p>
<div class="ulist">
<ul>
<li>
<p><code>type</code>​: 特定のポリシーの値の種別 ([Percent (パーセント)] または [Pods (ポッド)])。</p>
</li>
<li>
<p><code>value</code>​: 特定のポリシーの種別の値。</p>
</li>
<li>
<p><code>periodSeconds</code>​: 特定のポリシーのスケーリング操作間の時間 (秒数)。</p>
</li>
</ul>
</div>
</li>
</ul>
</div></div></td>
</tr>
</tbody>
</table>

自動スケーリングについての詳細は [Kubernetes ドキュメント](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)​を参照してください。