2.7. Istio の高可用性について
Istio コントロールプレーンを高可用性 (HA) モードで実行すると、単一障害点を防止でき、istiod Pod に障害が発生した場合でもメッシュ操作が確実に継続します。HA を使用すると、1 つの Istio Pod が使用できなくなっても、別の Pod が Istio データプレーンの管理と設定を継続し、サービスの停止や中断を防止できます。HA は、コントロールプレーンのワークロードを分散することでスケーラビリティーを提供し、グレースフルアップグレードを可能にし、障害復旧操作をサポートし、ゾーン全体のメッシュの停止から保護します。
システム管理者は、2 つの方法で Istio デプロイメントの HA を設定できます。
-
静的レプリカ数を定義する: このアプローチでは、一定レベルの冗長性を提供するために、固定された
istiodPod の数を設定します。 -
自動スケーリングを使用する: このアプローチでは、リソース使用率またはカスタムメトリクスに基づいて
istiodPod の数を動的に調整することで、変動するワークロードに対してより効率的なリソース消費を実現します。
2.7.1. 自動スケーリングを使用して Istio HA を設定する リンクのコピーリンクがクリップボードにコピーされました!
Istio コントロールプレーンを高可用性 (HA) モードで設定して、単一障害点を防止し、いずれかの Istiod Pod に障害が発生した場合でも確実にメッシュ操作が継続されるようにします。自動スケーリングは、実行可能な Istio コントロールプレーン Pod の最小数と最大数を定義します。OpenShift Container Platform はこれらの値を使用して、CPU やメモリーなどのリソース使用率に基づいて動作中のコントロールプレーンの数をスケーリングし、メッシュ内の変動するワークロード数と全体的なトラフィックパターンに効率的に対応します。
前提条件
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインしている。 - Red Hat OpenShift Service Mesh Operator がインストールされている。
- Istio リソースをデプロイした。
手順
- OpenShift Container Platform Web コンソールで、Installed Operators をクリックします。
- Red Hat OpenShift Service Mesh 3 Operator をクリックします。
- Istio をクリックします。
-
Istio インストールの名前をクリックします。たとえば
defaultです。 - YAML をクリックします。
次の例のように
Istioカスタムリソース (CR) を変更します。設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 常に実行される Istio コントロールプレーンの最小レプリカ数を指定します。
- 2
- 負荷に基づいてスケーリングできるように、Istio コントロールプレーンの最大レプリカ数を指定します。HA をサポートするには、少なくとも 2 つのレプリカが必要です。
- 3
- 自動スケーリングのターゲット CPU 使用率を 80% に指定します。平均 CPU 使用率がこのしきい値を超えると、Horizontal Pod Autoscaler (HPA) はレプリカの数を自動的に増やします。
- 4
- 自動スケーリングのターゲットメモリー使用率を 80% に指定します。平均メモリー使用率がこのしきい値を超えると、HPA は自動的にレプリカの数を増やします。
検証
次のコマンドを実行して、Istio コントロール Pod のステータスを確認します。
oc get pods -n istio-system -l app=istiod
$ oc get pods -n istio-system -l app=istiodCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 2 つの
istiodPod が実行中です。2 つの Pod は、HA Istio コントロールプレーンの最小要件であり、基本的な HA セットアップが確立されていることを示します。
2.7.1.1. サービスメッシュ HA 自動スケーリングモードの API 設定 リンクのコピーリンクがクリップボードにコピーされました!
自動スケーリングを使用して高可用性 (HA) 用のサービスメッシュを設定する場合は、次の istio カスタムリソース定義 (CRD) パラメーターを使用します。
| パラメーター | 説明 |
|---|---|
|
|
istio デプロイメントの OpenShift は、Istio デプロイメントで Horizontal Pod Autoscaler (HPA) が有効になっている場合にのみこのパラメーターを使用します。これがデフォルトの動作です。 |
|
|
Istio デプロイメントの
OpenShift が負荷に基づいて 自動スケーリングが適切に機能するには、メトリクスも設定する必要があります。メトリクスが設定されていない場合、オートスケーラーはスケールアップまたはスケールダウンしません。 OpenShift は、Istio デプロイメントで Horizontal Pod Autoscaler (HPA) が有効になっている場合にのみこのパラメーターを使用します。これがデフォルトの動作です。 |
|
|
|
|
|
|
|
|
詳細は、Configurable Scaling Behavior を参照してください。 |
2.7.2. レプリカ数を使用して Istio HA を設定する リンクのコピーリンクがクリップボードにコピーされました!
Istio コントロールプレーンを高可用性 (HA) モードで設定して、単一障害点を防止し、いずれかの Istiod Pod に障害が発生した場合でも確実にメッシュ操作が継続されるようにします。レプリカ数は、稼働可能な Istio コントロールプレーン Pod の固定数を定義します。コントロールプレーンのワークロードが比較的安定している、または予測可能なメッシュ環境の場合、または istiod Pod を手動でスケーリングする必要がある場合は、レプリカ数を使用します。
前提条件
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインしている。 - Red Hat OpenShift Service Mesh Operator がインストールされている。
- Istio リソースをデプロイした。
手順
次のコマンドを実行して、
Istioリソースの名前を取得します。oc get istio -n istio-sytem
$ oc get istio -n istio-sytemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE default 1 1 0 default Healthy v1.24.6 24m
NAME REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE default 1 1 0 default Healthy v1.24.6 24mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Istioリソースの名前はdefaultです。次のコマンドを実行して
autoscaleEnabledおよびreplicaCountパラメーターを追加し、Istioカスタムリソース (CR) を更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Istio コントロール Pod のステータスを確認します。
oc get pods -n istio-system -l app=istiod
$ oc get pods -n istio-system -l app=istiodCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 2 つの
istiodPod が実行されています。これは HA Istio コントロールプレーンの最小要件であり、基本的な HA セットアップが行われていることを示しています。