Cloud Run API リファレンス

このページでは、Cloud Run ワークロード用に Service Mesh を構成するために使用される API のリファレンスについて説明します。

Cloud Run V1 API(google.cloud.run.v1)

サービス メッシュは、リビジョン レベルのシステム アノテーションを使用して有効にします。このアノテーションの値は、Cloud Service Mesh Istio クラスタのバッキング メッシュ名です。

アノテーション
run.googleapis.com/mesh projects/PROJECT>/locations/global/meshes/MESH>

Cloud Service Mesh Istio API

VirtualService API

フィールド名 タイプ フィールドの説明
gateways String [] ゲートウェイに「external-mesh」が含まれている場合、仮想サービスは GKE 以外のワークロードにのみ適用されます。

「external-mesh」とともに「mesh」が指定されている場合、仮想サービスは GKE 以外のワークロードと GKE ワークロードの両方に適用されます。
exportTo 文字列 GKE 以外のワークロードには Namespace のコンセプトがないため、「external-mesh」仮想 Service は 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[] 外部メッシュ仮想サービスでは無視されます。

ただし、「メッシュ」またはゲートウェイがある仮想サービスでは引き続き機能し、GKE ワークロードでは想定どおりに機能します。

Istio 自動 MTLS とセキュア命名

現在、Cloud Service Mesh は、GKE サービス間のリクエストに対して自動 Istio MutualTLS とセキュア命名をサポートしています。

プレビュー版では、GKE ワークロードまたはサービスと通信する GKE 以外のワークロードは、Istio Auto 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 構造体 GCPBackend リソースのスキーマ。
TypeMeta metav1.TypeMeta 種類や API バージョンなどのメタデータ情報を保存するための埋め込み構造体。
ObjectMeta metav1.ObjectMeta 名前、Namespace、ラベル、アノテーションなどのメタデータ情報を格納するための埋め込み構造体。
Spec GCPBackendSpec GCPBackend リソースの仕様。目的の状態を定義します。
GCPBackendSpec 構造体 GRPCRoute の望ましい状態を定義します。
Cloud Run *CloudRunBackend CloudRun で実行されるバックエンドを定義します(省略可)。
CloudRunBackend 構造体 Cloud Run で実行されているサービスを識別します。
サービス 文字列 CloudRun サービス名。1 ~ 49 文字で、特定のパターンに従い、小文字、ハイフン、数字のみで構成する必要があります。
リージョン []リージョン CloudRun サービスのリージョン。リージョンを 1 つ指定する必要があります。
プロジェクト 文字列 CloudRun サービスのプロジェクト ID。デフォルトは GKE クラスタと同じプロジェクトです。6 ~ 30 文字で、特定のパターンに従っている必要があります。現在、Cloud Run サービスと GKE クラスタは同じプロジェクトに存在する必要があります。
GCPBackendList 構造体 GCPBackend のリストが含まれます。
アイテム []*GCPBackend GCPBackend リソースのリストを示す GCPBackend ポインタの配列。
ListMeta metav1.ListMeta リソース バージョンやページネーションの続行トークンなど、リストのメタデータ情報を保存するための埋め込み構造体。