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 | 用于存储列表元数据信息(例如资源版本和用于分页的继续令牌)的内嵌结构体。 |