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 工作负载。

如果同时指定“mesh”和“external-mesh”,虚拟服务将同时应用于非 GKE 工作负载和 GKE 工作负载。
exportTo 字符串 鉴于非 GKE 工作负载不存在命名空间的概念,“external-mesh”虚拟服务将忽略 exportTo 字段。

不过,对于具有“网状结构”的虚拟服务,这些网关仍可继续使用;对于 GKE 工作负载,网关仍可按预期运行。
httpRoute.HTTPMatchRequest.SourceLabels map<string, string=""></string,> 对于“external-mesh”虚拟服务,将被忽略。
不过,对于具有“网状结构”的虚拟服务,这些网关仍可继续正常使用;对于 GKE 工作负载,网关仍可继续按预期运行。
httpRoute.HTTPMatchRequest.SourceNamespace 字符串 对于“external-mesh”虚拟服务,系统会忽略此属性。

不过,对于具有“网状结构”的虚拟服务,这些网关仍可继续使用;对于 GKE 工作负载,网关仍可按预期运行。
httpRoute.HTTPMatchRequest.Gateways 字符串[] 对于“external-mesh”虚拟服务,系统会忽略此属性。

不过,对于具有“网状结构”的虚拟服务,这些网关仍可继续使用;对于 GKE 工作负载,网关仍可按预期运行。
tls tlsRoute[] 对于“external-mesh”虚拟服务,系统会忽略此属性。

不过,对于具有“网状结构”的虚拟服务,这些网关仍可继续使用;对于 GKE 工作负载,网关仍可按预期运行。
tcp tcpRoute[] 对于外部网格虚拟服务,系统会忽略此字段。

不过,对于具有“网状结构”的虚拟服务,这些网关仍可继续使用;对于 GKE 工作负载,网关仍可按预期运行。

Istio Auto MTLS 和安全命名

目前,Cloud Service Mesh 支持为 GKE 服务之间的请求自动进行 Istio MutualTLS 和安全命名。

对于预览版,与 GKE 工作负载/服务通信的非 GKE 工作负载不会使用 Istio Auto MTLS 或安全命名。流量将以纯文本形式传输。确保 GKE 服务采用宽容 MTLS 政策(这是 Istio API 的默认设置),该政策接受来自 GKE 工作负载的 MTLS 流量以及来自非 GKE 工作负载的纯文本。

使用以下命令检查 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 工作负载也适用。

目标规则

对于预览版,DestinationRule 将支持定位到“external-mesh”虚拟服务,但以下字段除外:trafficPolicy.tls

Sidecar API

Sidecar API 不适用于非 GKE 工作负载。非 GKE 工作负载将能够看到范围为“external-mesh”的所有虚拟服务,而不会被任何 Sidecar 可见性规则过滤。

Security API - Authorization Policy、Request Authentication Policy

这些限制不适用于充当发送出站流量的客户端的非 GKE 工作负载。它们将继续应用接收入站流量的 GKE 工作负载。

GCPBackend API

字段名称 类型 字段说明
GCPBackend 结构体 GCPBackend 资源的架构。
TypeMeta metav1.TypeMeta 用于存储类型和 API 版本等元数据信息的内嵌结构体。
ObjectMeta metav1.ObjectMeta 用于存储名称、命名空间、标签、注释等元数据信息的内嵌结构体。
规范 GCPBackendSpec GCPBackend 资源的规范,用于定义其期望状态。
GCPBackendSpec 结构体 定义 GRPCRoute 的预期状态。
CloudRun *CloudRunBackend 定义在 Cloud Run 中运行的后端(可选)。
CloudRunBackend 结构体 标识在 Cloud Run 上运行的服务。
服务 字符串 CloudRun 服务名称。必须介于 1 到 49 个字符之间,遵循特定格式,并且只能由小写字母、连字符和数字组成。
区域 []Region CloudRun 服务的区域。必须提供一个区域。
项目 字符串 CloudRun 服务的项目 ID。默认为与 GKE 集群相同的项目。长度必须介于 6 到 30 个字符之间,并且遵循特定模式。目前,Cloud Run 服务和 GKE 集群必须位于同一项目中。
GCPBackendList 结构体 包含 GCPBackend 列表。
内容 []*GCPBackend 表示 GCPBackend 资源列表的 GCPBackend 指针数组。
ListMeta metav1.ListMeta 用于存储列表元数据信息(例如资源版本和用于分页的继续令牌)的内嵌结构体。