Istio v1 API のご紹介

Istio の機能の安定性を反映して、ネットワーキング、セキュリティ、テレメトリー API が 1.22 で v1 に昇格しました。

2024年5月13日 | 執筆者:Whitney Griffith - Microsoft

Istio は、サービスメッシュ内のサービスの堅牢なセキュリティ、シームレスな接続性、効果的な可観測性を確保するために重要な、ネットワーキングセキュリティテレメトリー API を提供します。これらの API は、世界中の何千ものクラスターで使用されており、重要なインフラストラクチャを保護および強化しています。

これらの API によって提供される機能のほとんどは、しばらくの間安定しているとみなされてきましたが、API バージョンは v1beta1 のままでした。これらのリソースの安定性、採用、価値を反映して、Istio コミュニティは Istio 1.22 でこれらの API を v1 に昇格させることを決定しました。

Istio 1.22 では、以下の API を v1 に昇格させるために集中的な取り組みが行われたことを発表できて嬉しく思います。

機能の安定性と API バージョン

Kubernetes や Istio で使用されているような宣言型 API は、リソースの記述を、それに基づいて動作する実装から切り離します。

Istio の機能段階の定義では、安定した機能(あらゆる規模の本番環境での使用準備が整っており、正式な非推奨ポリシーが付属している機能)は v1 API と一致させる必要があると説明しています。現在、API バージョンは機能の安定性と一致しており、以前から安定している機能と、このリリースで新たに安定したと指定された機能の両方に対して、この約束を実現しています。

現在のところ、以前の v1beta1 および v1alpha1 API バージョンのサポートを中止する計画はありませんが、ユーザーは既存の YAML ファイルを更新して、v1 API の利用に手動で移行することをお勧めします。

Telemetry API (テレメトリー API)

v1 テレメトリー API は、以前の API バージョンから変更があった唯一の昇格された API です。次の v1alpha1 機能は v1 に昇格しませんでした。

これらのフィールドに関するフィードバックは、GitHub で issue を作成して共有してください。

Istio CRD の概要

これは、サポートされている API バージョンの完全なリストです。

カテゴリAPIバージョン
ネットワーキングDestination Rule (宛先ルール)v1v1beta1v1alpha3
Istio Gateway (ゲートウェイ)v1v1beta1v1alpha3
Service Entry (サービスエントリ)v1v1beta1v1alpha3
Sidecar (サイドカー) スコープv1v1beta1v1alpha3
Virtual Service (仮想サービス)v1v1beta1v1alpha3
Workload Entry (ワークロードエントリ)v1v1beta1v1alpha3
Workload Group (ワークロードグループ)v1v1beta1v1alpha3
プロキシ構成v1beta1
Envoy フィルターv1alpha3
セキュリティ承認ポリシーv1v1beta1
Peer Authentication (ピア認証)v1v1beta1
リクエスト認証v1v1beta1
テレメトリーテレメトリーv1v1alpha1
拡張機能Wasm プラグインv1alpha1

Istio は、Kubernetes Gateway API を使用して構成することもできます。

v1 Istio API の使用

Istio には、現在開発中で、リリース間で変更される可能性のある API がいくつかあります。たとえば、Envoy フィルター、プロキシ構成、および Wasm プラグイン API です。

さらに、Istio は、CRD バージョン管理の制限により、API のすべてのバージョンで厳密に同一のスキーマを維持します。したがって、v1 テレメトリー API が存在する場合でも、上記で説明した 3 つの v1alpha1 フィールドは、v1 テレメトリー API リソースを宣言するときにも利用できます。

リスク回避型の環境のために、安定した検証ポリシー検証アドミッションポリシーを追加しました。これにより、Istio API で v1 API およびフィールドのみが使用されることを保証できます。

新しい環境では、Istio のインストール時に安定した検証ポリシーを選択すると、今後作成または更新されるすべてのカスタムリソースが v1 であり、v1 機能のみが含まれることが保証されます。

このポリシーが、それに準拠していないカスタムリソースを持つ既存の Istio インストールにデプロイされた場合、許可される唯一のアクションは、リソースを削除するか、問題のあるフィールドの使用を削除することです。

安定した検証ポリシーを使用して Istio をインストールするには

$ helm install istio-base -n istio-system --set experimental.stableValidationPolicy=true

ポリシーを使用して Istio をインストールするときに特定のリビジョンを設定するには

$ helm install istio-base -n istio-system --set experimental.stableValidationPolicy=true -set revision=x

この機能は Kubernetes 1.30 以降と互換性があります。検証は CEL 式を使用して作成され、ユーザーは特定のニーズに合わせて検証を変更できます。

まとめ

Istio プロジェクトは、サービスメッシュの正常な運用に不可欠な安定した API と機能を提供することに尽力しています。機能に関する関連するユースケースと安定性の障害を洗練させ続ける際に、適切な意思決定を行うためのガイドとして、皆様からのフィードバックをお待ちしています。issue を作成したり、関連する Istio Slack チャンネルに投稿したり、毎週開催されるワーキンググループミーティングに参加して、フィードバックをお寄せください。

この記事をシェアする