Kubernetes Engine (OKE)で作成されたクラスタでのIstioの使用
Kubernetes Engine (OKE)で作成したクラスタでのIstioの使用についてご確認ください。
Istioは、オープンソースのプラットフォームに依存しないサービス・メッシュで、トラフィック管理、ポリシー施行、およびテレメトリ収集を提供します。Istioは、マイクロサービスとアプリケーション間の通信を管理するように設計されています。Istioは、基礎となるサービスへのサイドカーとしてデプロイされたEnvoyプロキシを使用して、サービス・メッシュ内のすべてのサービスのすべてのインバウンドおよびアウトバウンド・トラフィックを仲介します。基盤となるサービスに変更を加えることなく、Istioは、すべてのサービス間通信に対して、自動化されたベースライン・トラフィック・レジリエンス、サービス・メトリック収集、分散トレース、トラフィック暗号化、プロトコル・アップグレード、および高度なルーティング機能を提供します。
Istioは、イングレス・ゲートウェイとエグレス・ゲートウェイを使用して、サービス・メッシュの端で実行されるロード・バランサを構成します。Istioイングレス・ゲートウェイは、Kubernetes GatewayおよびVirtualServiceリソースを使用して実装され、サービス・メッシュ内のすべてのサービスで一貫性のある高パフォーマンスのトラフィック管理レイヤーを提供します。イングレス・ゲートウェイは、すべての受信HTTPおよびHTTPSリクエスト・トラフィックが流れるサービス・メッシュへの単一のエントリ・ポイントです。イングレス・ゲートウェイは、リクエストに基づいて適切なサービスにトラフィックをルーティングします。同様に、エグレス・ゲートウェイはサービス・メッシュからの終了ポイントを定義します。
Istioの詳細は、Istioのドキュメントを参照してください。
Istioは、次の2つの方法でKubernetesクラスタにデプロイできます。
- スタンドアロン・プログラムとして(スタンドアロン・プログラムとしてのIstioの作業を参照)
- クラスタ・アドオンとしてのIstioの作業(クラスタ・アドオンとしてのIstioの作業を参照)
ポッド・ネットワーキングにOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する場合、サービス・メッシュ製品(IstioやLinkerdなど)がサポートされることに注意してください。Istioアドオンを除き、現在、サポートはOracle Linux 7に制限されています(Oracle Linux 8サポートは予定されています)。Istioアドオンは、Oracle Linux 7とOracle Linux 8の両方でサポートされています。ワーカー・ノードでは、Kubernetes 1.26以降が実行されている必要があります。
Istioは、管理対象ノード・プールで使用できますが、仮想ノード・プールでは使用できません。
Kubernetes Gateway APIの使用
ゲートウェイAPIは、Kubernetesでレイヤー4 (L4)およびレイヤー7 (L7)ルーティングのAPIリソースを提供することに重点を置いた公式のKubernetesプロジェクトです。Gateway APIは、次世代のKubernetesイングレス、ロード・バランシングおよびサービス・メッシュAPIを表します。
Kubernetes Engineでは、ゲートウェイAPIカスタム・リソース定義(CRD)のインストールがサポートされており、ゲートウェイAPIの開始ドキュメントの手順に従います。たとえば、標準チャネルをインストールするには、次のコマンドを使用します。
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yamlGateway API CRDのインストール後、Istioをスタンドアロン・プログラムまたはクラスタ・アドオンのいずれかとして使用して、Gateway APIサポートを利用できます。Kubernetesイングレス・リソースのサポートとともに、Istioでは、ゲートウェイAPIのゲートウェイ・リソースを使用してイングレス・トラフィックを構成できます。ゲートウェイはイングレス・リソースよりも広範なカスタマイズと柔軟性を提供し、監視ルールやルート・ルールなどのIstio機能をクラスタに入るトラフィックに適用できるようにします。
Istioドキュメントでは、ゲートウェイAPIをIstioとともに使用する方法について説明します。実装としてIstioを使用してゲートウェイを定義する場合、gatewayClassNameプロパティをistioに設定することが重要です。例:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: istioゲートウェイの構成およびゲートウェイAPIでの高度なIstio機能の使用の詳細は、IstioドキュメントのKubernetes Gateway APIおよびゲートウェイAPIのドキュメントを参照してください。