Referencia de la API Cloud Run
En esta página se proporciona una referencia de las APIs que se usan para configurar Cloud Service Mesh en cargas de trabajo de Cloud Run.
API Cloud Run
API v1
Cloud Service Mesh se habilita mediante una anotación a nivel de 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 v2
Cloud Service Mesh se habilita mediante el campo serviceMesh
del recurso Service
.
API de Istio de Cloud Service Mesh
API VirtualService
Nombre del campo | Tipo | Descripción del campo |
---|---|---|
pasarelas | Cadena [] | Si las gateways incluyen "external-mesh", el servicio virtual solo se aplica a las cargas de trabajo que no son de GKE. Si se especifica "mesh" junto con "external-mesh", el servicio virtual se aplicará tanto a las cargas de trabajo que no sean de GKE como a las de GKE. |
exportTo | cadena | Teniendo en cuenta que las cargas de trabajo que no son de GKE no tienen el concepto de espacio de nombres, los servicios virtuales "external-mesh" ignorarán el campo exportTo. Sin embargo, seguirán funcionando en los servicios virtuales que tengan una malla o pasarelas, y seguirán funcionando correctamente en las cargas de trabajo de GKE. |
httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | Se ignorará en los servicios virtuales "external-mesh". Sin embargo, seguirán funcionando en los servicios virtuales que tengan una malla o pasarelas, así como en las cargas de trabajo de GKE. |
httpRoute.HTTPMatchRequest.SourceNamespace | cadena | Se ignorará en los servicios virtuales "external-mesh". Sin embargo, seguirán funcionando en los servicios virtuales que tengan una malla o pasarelas, y seguirán funcionando correctamente en las cargas de trabajo de GKE. |
httpRoute.HTTPMatchRequest.Gateways | string[] | Se ignorará en los servicios virtuales "external-mesh". Sin embargo, seguirán funcionando en los servicios virtuales que tengan una malla o pasarelas, y seguirán funcionando correctamente en las cargas de trabajo de GKE. |
tls | tlsRoute[] | Se ignorará en los servicios virtuales "external-mesh". Sin embargo, seguirán funcionando en los servicios virtuales que tengan una malla o pasarelas, y seguirán funcionando correctamente en las cargas de trabajo de GKE. |
tcp | tcpRoute[] | Se ignorará en el caso de los servicios virtuales de malla externa. Sin embargo, seguirán funcionando en los servicios virtuales que tengan una malla o pasarelas, y seguirán funcionando correctamente en las cargas de trabajo de GKE. |
MTLS automático y nomenclatura segura de Istio
Actualmente, Cloud Service Mesh admite Istio MutualTLS automático y Secure Naming para las solicitudes entre servicios de GKE.
En la versión preliminar, las cargas de trabajo que no sean de GKE y que se comuniquen con cargas de trabajo o servicios de GKE no usarán ni Istio Auto MTLS ni Secure Naming. El tráfico será 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 sean de GKE.
Usa el siguiente comando para comprobar 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 MeshConfig para habilitar e inhabilitar Cloud Logging y Cloud Monitoring en cargas de trabajo de GKE. Esto también funcionará de forma similar para las cargas de trabajo que no sean de GKE.
Regla de destino
En la vista previa, DestinationRule
se admitirá la segmentación de los servicios virtuales "external-mesh",
excepto en los siguientes campos: trafficPolicy.tls
API de Sidecar
La API Sidecar no se podrá aplicar a cargas de trabajo que no sean de GKE. Las cargas de trabajo que no sean de GKE podrán ver todos los servicios virtuales incluidos en el ámbito "external-mesh" sin que se apliquen reglas de visibilidad de Sidecar.
API Security: política de autorización y política de autenticación de solicitudes
No se aplicarán a las cargas de trabajo que no sean de GKE y que actúen como clientes que envían tráfico saliente. Seguirán aplicando cargas de trabajo de GKE que reciban tráfico entrante.
GCPBackend API
Nombre del campo | Tipo | Descripción del campo |
---|---|---|
GCPBackend | tipo STRUCT | Esquema del recurso GCPBackend. |
TypeMeta | metav1.TypeMeta | Estructura insertada para almacenar información de metadatos, como el tipo y la versión de la API. |
ObjectMeta | metav1.ObjectMeta | Estructura insertada para almacenar información de metadatos, como el nombre, el espacio de nombres, las etiquetas, las anotaciones, etc. |
Especificación | GCPBackendSpec | Especificación del recurso GCPBackend, que define su estado deseado. |
GCPBackendSpec | tipo STRUCT | Define el estado deseado de GRPCRoute. |
CloudRun | *CloudRunBackend | Define un backend que se ejecuta en Cloud Run (opcional). |
CloudRunBackend | tipo STRUCT | Identifica un servicio que se ejecuta en Cloud Run. |
Servicio | cadena | Nombre del servicio de Cloud Run. Debe tener entre 1 y 49 caracteres, seguir un patrón específico y estar formado únicamente por letras minúsculas, guiones y números. |
Regiones | []Región | Regiones del servicio Cloud Run. Se debe proporcionar exactamente una región. |
Proyecto | cadena | ID de proyecto del servicio Cloud Run. 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, Cloud Run Service y el clúster de GKE deben estar en el mismo proyecto. |
GCPBackendList | tipo STRUCT | Contiene una lista de GCPBackend. |
Elementos | []*GCPBackend | Matriz de punteros de GCPBackend que representa la lista de recursos de GCPBackend. |
ListMeta | metav1.ListMeta | Estructura insertada para almacenar información de metadatos de listas, como la versión del recurso y el token de continuación para la paginación. |