Referencia de la API de Cloud Run

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

API de Cloud Run v1 (google.cloud.run.v1)

La malla de servicios se habilita con una anotación del sistema 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 Istio de Cloud Service Mesh

API de VirtualService

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

Si se especifica "mesh" junto con "external-mesh", el servicio virtual se aplicará a las cargas de trabajo de GKE y de otros proveedores.
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ática y nombres seguros de Istio

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

En la versión preliminar, las cargas de trabajo que no sean de GKE que se comuniquen con cargas de trabajo o servicios de GKE no usarán la mTLS automática de Istio ni el nombre seguro. 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 la predeterminada 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 sean 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 telemética de MeshConfig para habilitar y inhabilitar Cloud Logging y Cloud Monitoring para las cargas de trabajo de GKE. Esto también funcionará de manera similar para cargas de trabajo que no sean de GKE.

Regla del destino

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

API de Sidecar

La API de Sidecar no se aplicará a las cargas de trabajo que no sean de GKE. Las cargas de trabajo que no sean de GKE podrán ver todos los servicios virtuales con el alcance de "external-mesh" sin que se filtren por ninguna regla de visibilidad de Sidecar.

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

No se aplicarán a las cargas de trabajo que no sean de GKE que actúen como clientes que envían tráfico saliente. Seguirán aplicando cargas de trabajo de GKE que reciban 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 incorporada para almacenar información de metadatos, como el tipo y la versión de la API.
ObjectMeta metav1.ObjectMeta Es una estructura incorporada para almacenar información de metadatos, como el nombre, el espacio de nombres, las etiquetas, las anotaciones, etcétera.
Spec GCPBackendSpec Especificación del recurso GCPBackend, que define su estado deseado.
GCPBackendSpec struct Define el estado deseado de GRPCRoute.
CloudRun *CloudRunBackend Define un backend que se ejecuta en CloudRun (opcional).
CloudRunBackend struct Identifica un servicio que se ejecuta en Cloud Run.
Servicio string Es el nombre del servicio de CloudRun. Debe tener entre 1 y 49 caracteres, seguir un patrón específico y contener solo letras minúsculas, guiones y números.
Regiones []Región Regiones del servicio de CloudRun. Se debe proporcionar exactamente una región.
Proyecto string ID del proyecto del servicio de CloudRun. La configuración predeterminada 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, el servicio de Cloud Run 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 de GCPBackend que representan la lista de recursos de GCPBackend.
ListMeta metav1.ListMeta Es una estructura incorporada para almacenar información de metadatos de lista, como la versión del recurso y el token de Continuation para la paginación.