주변 네트워크 문제 해결

이 페이지에서는 Google Kubernetes Engine (GKE) 앰비언트 네트워킹을 문제 해결하고 확인하는 방법을 보여줍니다. 클러스터 내 주변 구성요소의 상태를 확인하고, 트래픽 인증 및 승인 문제를 진단하고, 인증서 발급을 확인하고, 측정항목과 로그를 검사하는 방법을 안내합니다.

구성요소가 설치되어 있고 정상인지 확인

Cloud Service Mesh 앰비언트 모드의 클러스터 내 구성요소는 gke-managed-ambient 네임스페이스에 설치됩니다. 다음 명령어를 사용하여 관련 포드의 상태를 모두 확인할 수 있습니다.

kubectl get pods -n gke-managed-ambient

트래픽이 인증되고 승인되었는지 확인

Cloud de Confiance 콘솔에서 로그 탐색기를 사용하여 관심 있는 연결에 해당하는 액세스 로그를 확인합니다.

resource.type="k8s_container"
resource.labels.location="CLUSTER_LOCATION"
resource.labels.cluster_name="CLUSTER_NAME"
logName="projects/PROJECT_ID/logs/gke-ambient-node-proxy-accesslog"

액세스 로그에는 인증 및 승인 상태를 비롯한 연결 세부정보가 표시됩니다.

로그 형식

필드 유형 설명
connection 구조체 연결 정보
connection.src_ip 문자열 연결의 소스 IP입니다.
connection.src_port int 연결의 소스 포트입니다.
connection.dest_ip 문자열 연결의 대상 IP입니다.
connection.dest_port int 연결의 대상 포트입니다.
connection.direction 문자열 연결 방향: {ingress, egress}
src 구조체 소스의 엔드포인트 정보입니다.
src.spiffe_id 문자열 포드의 SPIFFE ID입니다. 포드에 SPIFFE ID가 없는 경우 비어 있습니다.
dst 구조체 대상 엔드포인트 정보입니다.
dst.spiffe_id 문자열 포드의 SPIFFE ID입니다. 포드에 SPIFFE ID가 없는 경우 비어 있습니다.
error_details 문자열 발생한 오류에 관한 세부정보입니다 (오류가 발생하지 않은 경우 -).
timestamp 문자열 연결이 관찰된 시간 (UTC)입니다.
tls_failure_reason 문자열 TLS 핸드셰이크 실패 이유입니다. null: 연결이 TLS가 아닌 경우

인증서가 성공적으로 발급되었는지 확인

다음 명령어를 사용하여 클러스터의 워크로드 포드에 대한 CertificateSigningRequests 상태를 검사합니다.

kubectl get csr

다음과 비슷한 'Approved,Issued' 조건이 표시됩니다.

NAME                           AGE   SIGNERNAME                 CONDITION
gke-ambient-spiffe-csr-q8kqh   2s    spiffe.gke.io/fleet-svid   Approved,Issued
gke-ambient-spiffe-csr-t5px2   7s    spiffe.gke.io/fleet-svid   Approved,Issued

네트워크 서비스 모니터링 측정항목

Cloud Service Mesh 앰비언트 네트워킹은 표준 Cloud Observability 측정항목 외에도 네트워크 서비스 모니터링과 통합되어 자세한 레이어 4 네트워크 원격 분석을 제공합니다.

자세한 내용은 네트워크 서비스 모니터링 개요 및 네트워크 서비스 모니터링 측정항목 참조를 참고하세요.