Cloud Run API リファレンス
このページでは、Cloud Run ワークロード用に Cloud Service Mesh を構成するために使用される API のリファレンスについて説明します。
Cloud Run API
v1 API
Cloud Service Mesh は、リビジョン レベルのアノテーションを使用して有効にします。このアノテーションの値は、Cloud Service Mesh Istio クラスタのバッキング メッシュ名です。
アノテーション | 値 |
---|---|
run.googleapis.com/mesh | projects/PROJECT/locations/global/meshes/MESH |
v2 API
Cloud Service Mesh は、Service
リソースの serviceMesh
フィールドを使用して有効にします。
Cloud Service Mesh Istio API
VirtualService API
フィールド名 | 型 | フィールドの説明 |
---|---|---|
ゲートウェイ | String [] | ゲートウェイに「external-mesh」が含まれている場合、仮想サービスは GKE 以外のワークロードにのみ適用されます。 「external-mesh」とともに「mesh」が指定されている場合、仮想サービスは GKE 以外のワークロードと GKE ワークロードの両方に適用されます。 |
exportTo | 文字列 | GKE 以外のワークロードには Namespace のコンセプトがないため、「external-mesh」仮想サービスは exportTo フィールドを無視します。 ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。 |
httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | 「external-mesh」仮想サービスでは無視されます。 ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。 |
httpRoute.HTTPMatchRequest.SourceNamespace | 文字列 | 「external-mesh」仮想サービスでは無視されます。 ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。 |
httpRoute.HTTPMatchRequest.Gateways | string[] | 「external-mesh」仮想サービスでは無視されます。 ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。 |
tls | tlsRoute[] | 「external-mesh」仮想サービスでは無視されます。 ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。 |
tcp | tcpRoute[] | external-mesh 仮想サービスでは無視されます。 ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。 |
Istio 自動 MTLS とセキュア命名
現在、Cloud Service Mesh は、GKE サービス間のリクエストに対して自動 Istio MutualTLS とセキュア命名をサポートしています。
プレビュー版では、GKE ワークロードまたはサービスと通信する GKE 以外のワークロードは、Istio 自動 MTLS もセキュア命名も使用しません。トラフィックはプレーン テキストで送信されます。GKE サービスに、GKE ワークロードからの MTLS トラフィックと GKE 以外のワークロードからのプレーンテキストを受け入れることができる許可付き MTLS ポリシー(Istio API のデフォルト)があることを確認します。
PeerAuthentication が許可モードかどうかを確認するには、次のコマンドを使用します。
# list PeerAuthentication resources in a namespace
# If no PeerAuthentication resource exists in the namespace,
# then it's PERMISSIVE mode (Istio API default)
kubectl get PeerAuthentication -n $NAMESPACE
# for each of the above run the following command
kubectl get PeerAuthentication $PEER-AUTHN -n $NAMESPACE
# Expected Output is as follows:
# MTLS Mode must be PERMISSIVE.
# If the output says STRICT, then please update the policy to PERMISSIVE.
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: $PEER-AUTHN
namespace: $NAMESPACE
spec:
mtls:
mode: PERMISSIVE
MeshConfig テレメトリー
Cloud Service Mesh は、MeshConfig テレメトリー API をサポートし、GKE ワークロードの Cloud Logging と Cloud Monitoring を有効または無効にします。これは、GKE 以外のワークロードでも同様に機能します。
宛先ルール
プレビュー版では、「external-mesh」仮想サービスをターゲットとする DestinationRule
がサポートされます(次のフィールドを除く)。trafficPolicy.tls
Sidecar API
Sidecar API は、GKE 以外のワークロードには適用されません。GKE 以外のワークロードは、Sidecar の可視性ルールでフィルタされることなく、「external-mesh」にスコープされたすべての仮想サービスを確認できます。
Security API - 認可ポリシー、リクエスト認証ポリシー
これは、送信トラフィックを送信するクライアントとして機能する GKE 以外のワークロードには適用されません。引き続き、着信トラフィックを受信する GKE ワークロードが適用されます。
GCPBackend API
フィールド名 | 型 | フィールドの説明 |
---|---|---|
GCPBackend | struct | GCPBackend リソースのスキーマ。 |
TypeMeta | metav1.TypeMeta | 種類や API バージョンなどのメタデータ情報を保存するための埋め込み構造体。 |
ObjectMeta | metav1.23ObjectMeta | 名前、名前空間、ラベル、アノテーションなどのメタデータ情報を保存するための埋め込み構造体。 |
Spec | GCPBackendSpec | GCPBackend リソースの仕様。目的の状態を定義します。 |
GCPBackendSpec | struct | GRPCRoute の望ましい状態を定義します。 |
BackendService | *BackendServiceBackend | バックエンド サービスを定義します。(省略可)。 |
BackendServiceBackend | struct | バックエンド サービスを識別します。 |
Name | 文字列 | BackendService 名1 ~ 49 文字で、特定のパターンに従い、小文字、ハイフン、数字のみで構成する必要があります。 |
ロケーション | ロケーション | BackendService のロケーション。CSM の場合はグローバルにする必要があります。(マネージド LB の場合はリージョン/グローバル)。デフォルトはクラスタと同じロケーションです。 |
プロジェクト | 文字列 | BackendService のプロジェクト ID。デフォルトは GKE クラスタと同じプロジェクトです。6 ~ 30 文字で、特定のパターンに従っている必要があります。現在、BackendService と GKE クラスタは同じプロジェクトに存在する必要があります。 |
GCPBackendList | struct | GCPBackend のリストが含まれます。 |
アイテム | []*GCPBackend | GCPBackend リソースのリストを示す GCPBackend ポインタの配列。 |
ListMeta | metav1.ListMeta | リソース バージョンやページネーションの続行トークンなど、リストのメタデータ情報を保存するための埋め込み構造体。 |