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 | リソース バージョンやページネーションの続行トークンなど、リストのメタデータ情報を保存するための埋め込み構造体。 |