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 문자열 [] 게이트웨이에 'external-mesh'가 포함된 경우 가상 서비스는 GKE가 아닌 워크로드에만 적용됩니다.

'external-mesh'와 함께 '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 자동 mTLS 및 보안 이름 지정

현재 Cloud Service Mesh는 GKE 서비스 간 요청에 대해 자동 Istio MutualTLS 및 보안 이름 지정을 지원합니다.

미리보기의 경우 GKE 워크로드/서비스와 통신하는 비GKE 워크로드는 Istio Auto MTLS 또는 보안 이름 지정을 사용하지 않습니다. 트래픽은 일반 텍스트로 전송됩니다. GKE 서비스에 GKE 워크로드의 mTLS 트래픽과 GKE 이외 워크로드의 일반 텍스트를 허용하는 관대한 mTLS 정책 (Istio API 기본값)이 있는지 확인합니다.

다음 명령어를 사용하여 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 이외의 워크로드는 Sidecar 공개 규칙에 의해 필터링되지 않고 'external-mesh'로 범위가 지정된 모든 가상 서비스를 볼 수 있습니다.

Security API - 승인 정책, 요청 인증 정책

이는 아웃바운드 트래픽을 전송하는 클라이언트 역할을 하는 비GKE 워크로드에는 적용되지 않습니다. 수신 트래픽을 받는 GKE 워크로드는 계속 적용됩니다.

GCPBackend API

필드 이름 유형 필드 설명
GCPBackend 구조체 GCPBackend 리소스의 스키마입니다.
TypeMeta metav1.TypeMeta 종류 및 API 버전과 같은 메타데이터 정보를 저장하기 위한 삽입된 구조체입니다.
ObjectMeta metav1.ObjectMeta 이름, 네임스페이스, 라벨, 주석과 같은 메타데이터 정보를 저장하기 위한 삽입된 구조체입니다.
사양 GCPBackendSpec GCPBackend 리소스의 사양으로, 원하는 상태를 정의합니다.
GCPBackendSpec 구조체 GRPCRoute의 원하는 상태를 정의합니다.
CloudRun *CloudRunBackend CloudRun에서 실행되는 백엔드를 정의합니다 (선택사항).
CloudRunBackend 구조체 Cloud Run에서 실행 중인 서비스를 식별합니다.
서비스 문자열 CloudRun 서비스 이름입니다. 1~49자(영문 기준) 사이여야 하며 특정 패턴을 따르고 소문자, 하이픈, 숫자로만 구성되어야 합니다.
리전 []지역 CloudRun 서비스의 리전입니다. 리전은 정확히 하나만 제공해야 합니다.
프로젝트 문자열 CloudRun 서비스의 프로젝트 ID입니다. 기본값은 GKE 클러스터와 동일한 프로젝트입니다. 6~30자(영문 기준)여야 하며 특정 패턴을 따라야 합니다. 현재 Cloud Run 서비스와 GKE 클러스터는 동일한 프로젝트에 있어야 합니다.
GCPBackendList 구조체 GCPBackends 목록을 포함합니다.
항목 []*GCPBackend GCPBackend 리소스 목록을 나타내는 GCPBackend 포인터 배열입니다.
ListMeta metav1.ListMeta 리소스 버전, 페이징을 위한 계속 토큰과 같은 목록 메타데이터 정보를 저장하기 위한 삽입된 구조체입니다.