Istio

Istioクラスタ・アドオンを有効にすると、次のキー/値のペアを引数として渡すことができます。

ほとんどのクラスタ・アドオンに共通の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
affinity affinity

アフィニティ・スケジューリング・ルールのグループ。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • NVIDIA GPUオペレータ
可能な等価:
  • ノード機能の検出、master.affinityの使用
  • NVIDIA Network Operator、operator.affinityを使用
  • CSIドライバSMB、contoller.affinityを使用
  • AMD GPUオペレータ、controllerManager.affinityを使用
オプション null null
nodeSelectors ノード・セレクター

ノード・セレクタおよびノード・ラベルを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

ポッドをノードで実行するには、ポッドのノード・セレクタのキー/値がノードのラベルと同じである必要があります。

nodeSelectorsを、ポッドのノード・セレクタとワーカー・ノードのラベルの両方に一致するキー/値ペアに設定します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • NVIDIA GPUオペレータ
  • CSIドライバ SMB
可能な等価:
  • ノード機能の検出、worker.nodeSelectorの使用
  • NVIDIA Network Operator、operator.nodeSelectorsを使用
  • AMD GPU演算子。selectorまたはcontrollerManager.nodeSelectorを使用します
オプション null {"foo":"bar", "foo2": "bar2"}

ポッドは、foo=barまたはfoo2=bar2ラベルを持つノードでのみ実行されます。

numOfReplicas numOfReplicas アドオン配備の複製の数。
未使用者:
  • AMD GPUプラグイン
  • NVIDIA GPUオペレータ
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
可能な等価:
  • CoreDNS。nodesPerReplicaを使用します。
  • ノード機能の検出、master.replicaCountの使用
  • AMD GPUオペレータ、controllerManager.replicasを使用
必須 1

クラスタごとにアドオン・デプロイメントのレプリカを1つ作成します。

2

クラスタごとにアドオン・デプロイメントの2つのレプリカを作成します。

rollingUpdate rollingUpdate

maxSurgeおよびmaxUnavailableによるローリング更新の望ましい動作を制御します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • ノード機能検出
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
可能な等価:
  • NVIDIA GPU Operator、daemonsets.rollingUpdate.maxUnavailableを使用
  • AMD GPU演算子。devicePluginmetricsExportertestRunner configManagerまたはdraDriverupgradePolicyを使用します。
オプション null null
tolerations 許容範囲

テイントおよび許容範囲を使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。

taintがあるノード上でポッドを実行するには、ポッドに対応する許容範囲が必要です。

tolerationsを、ポッドの許容範囲とワーカー・ノードのテイントの両方に一致するキー/値のペアに設定します。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

可能な等価:
  • ノード機能の検出。master.tolerationsまたはworker.tolerations、あるいはその両方を使用します。
  • NVIDIA GPU Operator、daemonsets.tolerationsを使用
  • NVIDIA Network Operator、operator.tolerationsを使用
  • CSIドライバSMB、controller.tolerationsを使用
  • AMD GPUオペレータ。 devicePluginmetricsExportertestRunnerconfigManagerdraDriverまたはcontrollerManagerで許容値を使用します。
オプション null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

この許容範囲を持つポッドのみが、tolerationKeyFoo=tolerationValBar:noScheduleテイントを持つワーカー・ノードで実行できます。

topologySpreadConstraints topologySpreadConstraints

指定されたトポロジ間で一致するポッドを分散する方法。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

未使用者:
  • ノード機能検出
  • NVIDIA GPUオペレータ
  • NVIDIAネットワーク事業者
  • CSIドライバ SMB
  • AMD GPU演算子
オプション null null
このクラスタ・アドオンに固有の構成引数
キー(APIおよびCLI) キーの表示名(コンソール) 説明 必須/オプション デフォルト値 値の例
customizeConfigMap customizeConfigMap

OracleでIstioを自動的に管理する場合は、customizeConfigMapfalse(デフォルト)に設定します。

istioctl (またはIstioでサポートされている別のツール)を使用してIstioをカスタマイズし、Oracleがアドオンを更新するときにカスタマイズを保持する場合は、customizeConfigMaptrueに設定します。

必須 false true
discovery.ContainerResources discovery.ContainerResources

アドオン・コンテナが要求するリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

100ミリコアのCPUと100メビバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500MバイトのCPUおよび200Mバイトのメモリーに制限します。

discovery.EnvVariables discovery.EnvVariables

JSON形式のIstioコントロール・プレーン検出コンテナ環境変数のリスト。

オプション null [{"name":"ISTIO_GPRC_MAXRECVMSGSIZE","value":"8388608"},{"name":"ISTIO_GPRC_MAXSTREAMS","value":"150000"}]
enableIngressGateway enableIngressGateway Istioイングレス・ゲートウェイの有効化 必須 false true
istio-ingressgateway.Annotations istio ingressgateway.Annotations

Istioデプロイメントに渡す注釈。

たとえば、ロード・バランサのシェイプを指定する場合や、ロード・バランサをネットワーク・ロード・バランサとして作成するかどうかを指定できます。その他の注釈については、ロード・バランサおよびネットワーク・ロード・バランサの注釈の概要を参照してください。

プレーン・テキストまたはエンコードされたBase64のJSON形式。

オプション ""

{"service.beta.kubernetes.io/oci-load-balancer-shape":"400Mbps"}

{"oci.oraclecloud.com/load-balancer-type": "nlb"}

istio-ingressgateway.HorizontalPodAutoscalerMinReplicas istio ingressgateway.HorizontalPodAutoscalerMinReplicas

Istioイングレス・ゲートウェイ水平ポッド自動スカラの最小レプリカ数。

ゼロより大きい値を持つ整数である必要があります。

オプション null 1
istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas istio ingressgateway.HorizontalPodAutoscalerMaxReplicas

Istioイングレス・ゲートウェイの水平ポッド自動スケーラのレプリカの最大数。

ゼロより大きい値を持つ整数である必要があります。

オプション null 3
istio-ingressgateway.PodDisruptionBudgetMinAvailable istio ingressgateway.PodDisruptionBudgetMinAvailable

使用可能なIstioイングレス・ゲートウェイ・ポッドの最小数または割合。

オプション null

1

10%

istiod.HorizontalPodAutoscalerMinReplicas istiod.HorizontalPodAutoscalerMinReplicas

Istioコントローラの最小レプリカの数。

ゼロより大きい値を持つ整数である必要があります。

オプション null 1
istiod.HorizontalPodAutoscalerMaxReplicas istiod.HorizontalPodAutoscalerMaxReplicas

Istioコントローラのレプリカの最大数。

ゼロより大きい値を持つ整数である必要があります。

オプション null 3
istiod.PodDisruptionBudgetMinAvailable istiod.PodDisruptionBudgetMinAvailable

使用可能なIstioコントローラ・ポッドの最小数または割合。

オプション null

1

10%

profile プロファイル Istioインストール・プロファイル 必須 "oke-default" "oke-default"
大規模なクラスタに関する考慮事項

次の表に、大規模クラスタでこのクラスタ・アドオンを構成する際の考慮事項を示します。

引数名 ロールWRTノード数 説明 クラスタ・サイズが増加するにつれて リスク 推奨事項
affinity なし

特定のノードでのIstioポッドの配置を制御します。

該当なし 該当なし 該当なし
nodeSelectors なし

特定のラベルを持つノード上でIstioポッドを実行するかどうかを制御します。

該当なし 該当なし 該当なし
tolerations なし

汚染されたノードでIstioポッドを実行できるかどうかを制御します。

該当なし 該当なし 該当なし
topologySpreadConstraints あり

一致するIstioポッドをクラスタ・トポロジ間で分散する方法を制御します。

istiod レプリカの数が増えると、トポロジ分散制約の調整が必要になる場合があります。

適切に構成されていない場合、同じノードまたは同じゾーンにistiodまたはゲートウェイの複製が同時に配置される可能性があるため、ノード/ゾーンの障害によって一度に複数の複製が取り出されます。

異なるノードおよび可用性ゾーンにistiodおよびイングレス・ゲートウェイ・レプリカを分散するようにtopologySpreadConstraintsを構成し、ノードおよびゾーンの障害に対する耐障害性を向上させます。

numOfReplicas あり

Istioコントロールプレーンレプリカの数を制御します。

サービスメッシュに参加するポッドの数が増えるにつれて、より多くのレプリカが必要になる場合があります。

設定が低すぎると、ノードのドレインまたはアップグレード中に単一障害点になる可能性が高くなります。

メッシュ・ポッドの数が増えるにつれて、レプリカの数を増やします。

rollingUpdate なし

Istioデプロイメントの更新戦略を制御します。

該当なし 該当なし 該当なし
customizeConfigMap なし

オペレータ・レベルのIstio構成を制御します。

該当なし 該当なし 該当なし
discovery.ContainerResources あり

istiod 検出コンテナのCPUおよびメモリー・リソースを定義します。

メッシュ・プロキシの数およびIstio構成の量が増加すると、CPUおよびメモリーの要件が増加する可能性があります。

サイズが小さい場合、Istioコントロール・プレーンはCPUまたはメモリー不足になり、メッシュ・チャーンが大きくなると構成の伝播が遅くなり、サイドカーの更新が遅延し、不安定になる可能性があります。

メッシュサイズとトラフィックに基づいて、十分なCPUとメモリーを同期間に割り当て、クラスタの拡大に伴う制御プレーンのボトルネックを防ぐためにリソース使用率を定期的にモニターします。
discovery.EnvVariables なし

Istioコントロールプレーン検出コンテナの環境変数を定義します。

該当なし 該当なし 該当なし
enableIngressGateway なし

クラシックIstioイングレス・ゲートウェイを有効にするかどうかを制御します。

該当なし 該当なし

クラスタにクラシックIstioイングレス・ゲートウェイが必要な場合にのみ、イングレス・ゲートウェイを有効にします。

istio-ingressgateway.Annotations あり

ロード・バランサのタイプとシェイプを制御する注釈など、Istioイングレス・ゲートウェイの注釈を定義します。

必要なロード・バランサ構成は、クラスタ・ノードの数に直接ではなく、イングレス・ゲートウェイが受信または受信する予定のトラフィックの量によって異なります。

構成が正しくない場合、イングレス・ゲートウェイに誤ったロード・バランサのシェイプまたはタイプ(たとえば、誤ったOCI LBシェイプまたはNLB設定)をプロビジョニングできます。これにより、不正なエクスポージャー、スループット制限、またはトラフィックルーティングの問題が発生する可能性があります。

本番トラフィック要件およびネットワーキング・アーキテクチャに合せてOCIロード・バランサ注釈を構成し、最適なロード・バランシング、スケーラビリティおよび高可用性を確保します。
istio-ingressgateway.HorizontalPodAutoscalerMinReplicas あり

Horizontal Pod Autoscalerによって管理されるIstioイングレス・ゲートウェイ・レプリカの最小数を定義します。

トラフィックが増加するにつれて、より多くのイングレス・ゲートウェイ・レプリカが必要になる場合があります。

小さすぎると、イングレス・ゲートウェイのベースライン容量が少なくなり、スパイク中にトラフィックのボトルネックになる可能性が高くなります。1の場合、中断時の回復力も低下します。

可用性およびフォルト・トレランスを維持するために、トラフィックが増加するにつれてレプリカの最小数を増やします。

istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas あり

Horizontal Pod Autoscalerで作成できるIstioイングレス・ゲートウェイ・レプリカの最大数を定義します。

イングレス・ゲートウェイは、トラフィックが増加するにつれて、より多くのレプリカにスケーリングする必要がある場合があります。

イングレス・ゲートウェイが小さすぎると、トラフィックの急増中に十分なスケーリングができず、レイテンシが発生したり、接続が切断されたりする可能性があります。

可用性およびフォルト・トレランスを維持するために、トラフィックが増加するにつれてレプリカの最大数を増やします。

istio-ingressgateway.PodDisruptionBudgetMinAvailable あり

任意の中断時に使用可能にしておく必要があるIstioイングレス・ゲートウェイ・ポッドの最小数または割合を定義します。

イングレス・トラフィックが増加すると、可用性の最小値が高くなる場合があります。

低すぎると、アップグレードまたはノード・ドレインによって、一度に多数のゲートウェイが削除され、イングレス停止が発生する可能性があります。

高可用性を維持するためにトラフィックが増加するにつれて、最小可用性値を増やします。

istiod.HorizontalPodAutoscalerMinReplicas あり

Horizontal Pod Autoscalerで保持される istiod レプリカの最小数を定義します。

サービス・メッシュのサイズが増加すると、さらに istiod レプリカが必要になる場合があります。

小さすぎると、コントロール・プレーンは少なすぎる容量から開始され、構成バースト中に遅延する可能性が高くなります。

メッシュサイズが大きくなるにつれて、レプリカの最小数を増やします。可用性を維持するには、少なくとも3つのレプリカを使用します。

istiod.HorizontalPodAutoscalerMaxReplicas あり

Horizontal Pod Autoscalerで作成できる istiod レプリカの最大数を定義します。

既存のレプリカがリソース制限に達するか超える場合は、さらに istiod レプリカが必要になる場合があります。

値が小さすぎると、istiodはメッシュの成長、コンフィグチャーン、または多数のサイドカーを処理するのに十分なスケーリングができません。

istiod ポッドが一貫してリソース制限に近づいたり、リソース制限を超えたりした場合に、レプリカの最大数を増やします。

istiod.PodDisruptionBudgetMinAvailable あり

任意の中断時に使用可能にしておく必要がある istiod ポッドの最小数または割合を定義します。

コントロール・プレーンが大規模なサービス・メッシュを管理する場合、使用可能な istiod レプリカを維持することはますます重要になります。

低すぎると、ドレインまたはアップグレードによってコントロール・プレーンが使用できなくなり、サイドカー・インジェクションがクラスタ全体で失敗する可能性があります。

再起動および構成の更新中、一部の istiod ポッドが引き続き使用可能になるように値を構成します。

profile なし

Istioインストールプロファイルを指定します。

該当なし 該当なし 該当なし