2.7. Istio の高可用性について


Istio コントロールプレーンを高可用性 (HA) モードで実行すると、単一障害点を防止でき、istiod Pod に障害が発生した場合でもメッシュ操作が確実に継続します。HA を使用すると、1 つの Istio Pod が使用できなくなっても、別の Pod が Istio データプレーンの管理と設定を継続し、サービスの停止や中断を防止できます。HA は、コントロールプレーンのワークロードを分散することでスケーラビリティーを提供し、グレースフルアップグレードを可能にし、障害復旧操作をサポートし、ゾーン全体のメッシュの停止から保護します。

システム管理者は、2 つの方法で Istio デプロイメントの HA を設定できます。

  • 静的レプリカ数を定義する: このアプローチでは、一定レベルの冗長性を提供するために、固定された istiod Pod の数を設定します。
  • 自動スケーリングを使用する: このアプローチでは、リソース使用率またはカスタムメトリクスに基づいて istiod Pod の数を動的に調整することで、変動するワークロードに対してより効率的なリソース消費を実現します。

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 リソースをデプロイした。

手順

  1. OpenShift Container Platform Web コンソールで、Installed Operators をクリックします。
  2. Red Hat OpenShift Service Mesh 3 Operator をクリックします。
  3. Istio をクリックします。
  4. Istio インストールの名前をクリックします。たとえば default です。
  5. YAML をクリックします。
  6. 次の例のように Istio カスタムリソース (CR) を変更します。

    設定例

    apiVersion: sailoperator.io/v1
    kind: Istio
    metadata:
      name: default
    spec:
      namespace: istio-system
      values:
        pilot:
          autoscaleMin: 2 
    1
    
          autoscaleMax: 5 
    2
    
          cpu:
            targetAverageUtilization: 80 
    3
    
          memory:
            targetAverageUtilization: 80 
    4
    Copy to Clipboard Toggle word wrap

    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
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                      READY   STATUS    RESTARTS   AGE
    istiod-7c7b6564c9-nwhsg   1/1     Running   0          70s
    istiod-7c7b6564c9-xkmsl   1/1     Running   0          85s
    Copy to Clipboard Toggle word wrap

    2 つの istiod Pod が実行中です。2 つの Pod は、HA Istio コントロールプレーンの最小要件であり、基本的な HA セットアップが確立されていることを示します。

2.7.1.1. サービスメッシュ HA 自動スケーリングモードの API 設定

自動スケーリングを使用して高可用性 (HA) 用のサービスメッシュを設定する場合は、次の istio カスタムリソース定義 (CRD) パラメーターを使用します。

Expand
表2.1 HA API パラメーター
パラメーター説明

autoScaleMin

istio デプロイメントの istiod Pod の最小数を定義します。各 Pod には、Istio コントロールプレーンのインスタンスが 1 つ含まれています。

OpenShift は、Istio デプロイメントで Horizontal Pod Autoscaler (HPA) が有効になっている場合にのみこのパラメーターを使用します。これがデフォルトの動作です。

autoScaleMax

Istio デプロイメントの Istiod Pod の最大数を定義します。各 Pod には、Istio コントロールプレーンのインスタンスが 1 つ含まれています。

OpenShift が負荷に基づいて istiod Pod の数を自動的にスケーリングするには、このパラメーターを autoScaleMin パラメーターに定義した値よりも大きい値に設定する必要があります。

自動スケーリングが適切に機能するには、メトリクスも設定する必要があります。メトリクスが設定されていない場合、オートスケーラーはスケールアップまたはスケールダウンしません。

OpenShift は、Istio デプロイメントで Horizontal Pod Autoscaler (HPA) が有効になっている場合にのみこのパラメーターを使用します。これがデフォルトの動作です。

cpu.targetAverageUtilization

istiod Pod のターゲット CPU 使用率を定義します。平均 CPU 使用率がこのパラメーターで定義されるしきい値を超えると、HPA はレプリカ Pod の数を自動的に増やします。

memory.targetAverageUtilization

istiod Pod のターゲットメモリー使用率を定義します。平均メモリー使用率がこのパラメーターで定義されるしきい値を超えると、HPA はレプリカ Pod の数を自動的に増やします。

behavior

behavior フィールドを使用して、OpenShift が Istio リソースをスケールアップまたはスケールダウンするために使用する追加のポリシーを定義できます。

詳細は、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 リソースをデプロイした。

手順

  1. 次のコマンドを実行して、Istio リソースの名前を取得します。

    $ oc get istio -n istio-sytem
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      REVISIONS   READY   IN USE   ACTIVE REVISION   STATUS    VERSION   AGE
    default   1           1       0        default           Healthy   v1.24.6   24m
    Copy to Clipboard Toggle word wrap

    Istio リソースの名前は default です。

  2. 次のコマンドを実行して autoscaleEnabled および replicaCount パラメーターを追加し、Istio カスタムリソース (CR) を更新します。

    $ oc patch istio default -n istio-system --type merge -p '
    spec:
      values:
        pilot:
          autoscaleEnabled: false 
    1
    
          replicaCount: 2 
    2
    
    '
    Copy to Clipboard Toggle word wrap
    1
    自動スケーリングを無効にし、レプリカの数を固定する設定を指定します。
    2
    Istio コントロールプレーンのレプリカ数を指定します。HA をサポートするには、少なくとも 2 つのレプリカが必要です。

検証

  1. 次のコマンドを実行して、Istio コントロール Pod のステータスを確認します。

    $ oc get pods -n istio-system -l app=istiod
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                      READY   STATUS    RESTARTS   AGE
    istiod-7c7b6564c9-nwhsg   1/1     Running   0          70s
    istiod-7c7b6564c9-xkmsl   1/1     Running   0          85s
    Copy to Clipboard Toggle word wrap

    2 つの istiod Pod が実行されています。これは HA Istio コントロールプレーンの最小要件であり、基本的な HA セットアップが行われていることを示しています。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat