Referencia de la API de Cloud Run

En esta página, se proporciona una referencia para las APIs que se usan para configurar Cloud Service Mesh para las cargas de trabajo de Cloud Run.

API de Cloud Run

API v1

Cloud Service Mesh se habilita con una anotación a nivel de la revisión. El valor de esta anotación es el nombre de la malla de respaldo del clúster de Istio de Cloud Service Mesh.

Anotación Valor
run.googleapis.com/mesh projects/PROJECT/locations/global/meshes/MESH

API de v2

Cloud Service Mesh se habilita con el serviceMesh campo en el Service recurso

API de Istio de Cloud Service Mesh

API de VirtualService

Nombre del campo Tipo Descripción del campo
puertas de enlace String [] Si las puertas de enlace incluyen una "malla externa", el servicio virtual se aplica solo a las cargas de trabajo que no son de GKE.

Si se especifica "malla" junto con "malla externa", el servicio virtual se aplicará a las cargas de trabajo que no sean de GKE y a las de GKE.
exportTo string Dado que las cargas de trabajo que no son de GKE no tienen el concepto de espacio de nombres, los servicios virtuales de "malla externa" ignorarán el campo exportTo.

Sin embargo, seguirán funcionando para los servicios virtuales que tengan "malla" o las puertas de enlace seguirán funcionando como se espera para las cargas de trabajo de GKE.
httpRoute.HTTPMatchRequest.SourceLabels map<string, string=""></string,> Se ignorará para los servicios virtuales de "malla externa".
Sin embargo, seguirán funcionando para los servicios virtuales que tengan "malla" o las puertas de enlace seguirán funcionando como se espera para las cargas de trabajo de GKE.
httpRoute.HTTPMatchRequest.SourceNamespace string Se ignorará para los servicios virtuales de "malla externa".

Sin embargo, seguirán funcionando para los servicios virtuales que tengan "malla" o las puertas de enlace seguirán funcionando como se espera para las cargas de trabajo de GKE.
httpRoute.HTTPMatchRequest.Gateways string[] Se ignorará para los servicios virtuales de "malla externa".

Sin embargo, seguirán funcionando para los servicios virtuales que tengan "malla" o las puertas de enlace seguirán funcionando como se espera para las cargas de trabajo de GKE.
tls tlsRoute[] Se ignorará para los servicios virtuales de "malla externa".

Sin embargo, seguirán funcionando para los servicios virtuales que tengan "malla" o las puertas de enlace seguirán funcionando como se espera para las cargas de trabajo de GKE.
tcp tcpRoute[] Se ignorará para el servicio virtual de malla externa.

Sin embargo, seguirán funcionando para los servicios virtuales que tengan "malla" o las puertas de enlace seguirán funcionando como se espera para las cargas de trabajo de GKE.

MTLS automático de Istio y nombres seguros

Actualmente, Cloud Service Mesh admite Istio MutualTLS automático y nombres seguros para las solicitudes entre los servicios de GKE.

En la versión preliminar, las cargas de trabajo que no son de GKE que se comunican con cargas de trabajo o servicios de GKE no usarán Istio Auto MTLS ni nombres seguros. El tráfico estará en texto sin formato. Asegúrate de que los servicios de GKE tengan una política de MTLS permisiva (que es el valor predeterminado de la API de Istio) que acepte el tráfico de MTLS de las cargas de trabajo de GKE y el texto sin formato de las cargas de trabajo que no son de GKE.

Usa el siguiente comando para verificar si PeerAuthentication está en modo permisivo:

# 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

Telemetría de MeshConfig

Cloud Service Mesh admite la API de telemetría de MeshConfig para habilitar y, también, inhabilitar Cloud Logging y Cloud Monitoring para las cargas de trabajo de GKE. Esto funcionará de manera similar para las cargas de trabajo que no son de GKE.

Regla del destino

En la versión preliminar, se admitirá DestinationRule que segmenta los servicios virtuales de "malla externa", excepto los siguientes campos: trafficPolicy.tls.

API de Sidecar

La API de Sidecar no se aplicará a las cargas de trabajo que no son de GKE. Las cargas de trabajo que no son de GKE podrán ver todos los servicios virtuales con alcance en "malla externa" sin que se filtren con ninguna regla de visibilidad de Sidecar.

API de seguridad: Política de autorización, política de autenticación de solicitudes

Estos no se aplicarán a las cargas de trabajo que no son de GKE que actúan como clientes que envían tráfico saliente. Seguirán aplicando cargas de trabajo de GKE que reciben tráfico entrante.

API de GCPBackend

Nombre del campo Tipo Descripción del campo
GCPBackend struct Esquema para el recurso GCPBackend.
TypeMeta metav1.TypeMeta Es una estructura integrada para almacenar información de metadatos, como el tipo y la versión de la API.
ObjectMeta metav1.ObjectMeta Es una estructura integrada para almacenar información de metadatos, como el nombre, el espacio de nombres, las etiquetas, las anotaciones, etcétera.
Spec GCPBackendSpec Especificación para el recurso GCPBackend, que define su estado deseado.
GCPBackendSpec struct Define el estado deseado de GRPCRoute.
BackendService *BackendServiceBackend Define un servicio de backend (opcional).
BackendServiceBackend struct Identifica un servicio de backend.
Nombre string Nombre de BackendService. Debe tener entre 1 y 49 caracteres, seguir un patrón específico y constar solo de letras minúsculas, guiones y números.
Ubicación Ubicación Ubicación de BackendService. Debe ser global para CSM. (regional o global para LB administrado). El valor predeterminado es la misma ubicación que el clúster.
Proyecto string Es el ID del proyecto de BackendService. El valor predeterminado es el mismo proyecto que el clúster de GKE. Debe tener entre 6 y 30 caracteres y seguir un patrón específico. Actualmente, BackendService y el clúster de GKE deben estar en el mismo proyecto.
GCPBackendList struct Contiene una lista de GCPBackends.
Elementos []*GCPBackend Es un array de punteros GCPBackend que representa la lista de recursos GCPBackend.
ListMeta metav1.ListMeta Es una estructura integrada para almacenar información de metadatos de la lista, como la versión del recurso y el token de continuación para la paginación.