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
フィールド名 | タイプ | フィールドの説明 |
---|---|---|
gateways | String [] | gateways に「external-mesh」が含まれている場合、仮想サービスは GKE 以外のワークロードにのみ適用されます。 「external-mesh」とともに「mesh」が指定されている場合、仮想サービスは GKE 以外のワークロードと GKE ワークロードの両方に適用されます。 |
exportTo | string | GKE 以外のワークロードには Namespace のコンセプトがないため、「external-mesh」仮想サービスは exportTo フィールドを無視します。 ただし、「mesh」がある仮想サービスでは引き続き機能します。ゲートウェイは、GKE ワークロードで想定どおりに機能します。 |
httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | 「external-mesh」仮想サービスでは無視されます。 ただし、「mesh」がある仮想サービスでは引き続き機能します。ゲートウェイは、GKE ワークロードで想定どおりに機能します。 |
httpRoute.HTTPMatchRequest.SourceNamespace | string | 「external-mesh」仮想サービスでは無視されます。 ただし、「mesh」がある仮想サービスでは引き続き機能します。ゲートウェイは、GKE ワークロードで想定どおりに機能します。 |
httpRoute.HTTPMatchRequest.Gateways | string[] | 「external-mesh」仮想サービスでは無視されます。 ただし、「mesh」がある仮想サービスでは引き続き機能します。ゲートウェイは、GKE ワークロードで想定どおりに機能します。 |
tls | tlsRoute[] | 「external-mesh」仮想サービスでは無視されます。 ただし、「mesh」がある仮想サービスでは引き続き機能します。ゲートウェイは、GKE ワークロードで想定どおりに機能します。 |
tcp | tcpRoute[] | external-mesh 仮想サービスでは無視されます。 ただし、「mesh」がある仮想サービスでは引き続き機能します。ゲートウェイは、GKE ワークロードで想定どおりに機能します。 |
Istio 自動 MTLS と安全な命名
現在、Cloud Service Mesh は、GKE サービス間のリクエストに対して自動 Istio 相互 TLS と安全な命名をサポートしています。
プレビュー版では、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 以外のワークロードは、「external-mesh」にスコープされたすべての仮想サービスを確認できます。Sidecar の可視性ルールでフィルタされることはありません。
Security API - 認可ポリシー、リクエスト認証ポリシー
これは、アウトバウンド トラフィックを送信するクライアントとして機能する GKE 以外のワークロードには適用されません。引き続き、インバウンド トラフィックを受信する GKE ワークロードに適用されます。
GCPBackend API
フィールド名 | タイプ | フィールドの説明 |
---|---|---|
GCPBackend | struct | GCPBackend リソースのスキーマ。 |
TypeMeta | metav1.TypeMeta | 種類や API バージョンなどのメタデータ情報を保存するための埋め込み構造体。 |
ObjectMeta | metav1.ObjectMeta | 名前、Namespace、ラベル、アノテーションなどのメタデータ情報を保存するための埋め込み構造体。 |
Spec | GCPBackendSpec | GCPBackend リソースの仕様。望ましい状態を定義します。 |
GCPBackendSpec | struct | GRPCRoute の望ましい状態を定義します。 |
CloudRun | *CloudRunBackend | CloudRun で実行されるバックエンドを定義します(省略可)。 |
CloudRunBackend | struct | Cloud Run で実行されているサービスを識別します。 |
Service | string | CloudRun サービス名。1~49 文字で、特定のパターンに従い、小文字、ハイフン、数字のみで構成する必要があります。 |
Regions | []Region | CloudRun サービスのリージョン。リージョンは 1 つだけ指定する必要があります。 |
Project | string | CloudRun サービスのプロジェクト ID。デフォルトは GKE クラスタと同じプロジェクトです。6~30 文字で、特定のパターンに従っている必要があります。現在、Cloud Run サービスと GKE クラスタは同じプロジェクトに存在する必要があります。 |
GCPBackendList | struct | GCPBackend のリストが含まれます。 |
Items | []*GCPBackend | GCPBackend リソースのリストを示す GCPBackend ポインタの配列。 |
ListMeta | metav1.ListMeta | リソース バージョンやページネーションの続行トークンなど、リストのメタデータ情報を保存するための埋め込み構造体。 |