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