온프레미스 커넥터 설정 문제 해결

이 페이지에서는 IAP 온프레미스 커넥터 구성 문제를 해결하는 데 도움이 되는 단계별 안내를 제공합니다. 추가 문제 해결 정보는 Traffic Director 디버깅을 참조하세요.

오류 500 문제 해결

다음은 애플리케이션에 액세스하려고 할 때 발생하는 500 오류를 해결하는 데 도움이 되는 가능한 솔루션과 다양한 문제입니다.

온프레미스 애플리케이션이 Google Cloud 네트워크에 연결되어 있지 않음

온프레미스 애플리케이션이 Google Cloud 네트워크에 연결되지 않았을 수 있습니다. 온프레미스 커넥터 Compute Engine 인스턴스 중 하나에서 온프레미스 애플리케이션을 핑하여 연결을 확인하세요. 온프레미스 커넥터 엔드포인트에 연결할 수 없는 경우 계속 진행하기 전에 네트워크 연결 및 설정을 디버깅합니다.

Envoy가 VM에 제대로 설치되지 않음

Envoy가 올바르게 설치되었는지 확인하려면 다음 순서를 따르세요.

  1. 온프레미스 커넥터에서 Compute Engine VM 중 하나에 로그인합니다. 온프레미스 커넥터 VM 이름은 opc-on-prem-app-deployment-ig-${app}으로 시작합니다.
  2. Cloud Console에서 opc-on-prem-app-deployment-gclb-urlmap 부하 분산 백엔드 서비스 상태 확인이 녹색인지 확인합니다.
  3. 백엔드 서비스의 상태가 정상으로 표시되지 않았다면 인스턴스 중 하나에 SSH로 연결합니다.
     gcloud compute ssh instance-name --zone=zone name
  4. 다음 명령어를 실행하여 Envoy가 실행 중인지 확인합니다.

     ps aux | grep envoy
    
    grep envoy 외에 2개 이상의 프로세스가 실행 중이어야 합니다.

    출력 예시는 다음과 같습니다.

    envoy      943  0.0  0.0   5488  3076 ?        Ss   06:25   0:00 /bin/bash /usr/local/bin/run-proxy.sh
    envoy      944  0.1  1.5 178928 57352 ?        Sl   06:25   1:23 /usr/local/bin/envoy --config-path /usr/local/etc/
    envoy/envoy-proxy-bootstrap.json --allow-unknown-static-fields --disable-hot-restart --log-level info --drain-time-
    s 60
    
  5. Envoy 로그 디렉터리가 /var/log/envoy/에 만들어졌는지 확인합니다.

  6. 다음 명령어를 실행하여 VM에서 gce-mesh 버킷에 연결할 수 있는지 확인합니다.

    gsutil cp gs://gce-mesh/service-proxy-agent/releases/service-proxy-agent-0.2.tgz .

이 단계의 유효성 검사에 실패하면 Envoy가 제대로 설치되지 않은 것입니다. 자세한 내용은 /var/log/daemon.log에서 시작 로그를 확인하세요.

이전 단계에서 Envoy가 실행되지 않는 것으로 확인된 경우 VPC 서비스 제어가 원인일 수 있습니다. VM의 시작 스크립트는 gce-mesh 버킷에서 Envoy 이미지를 다운로드합니다. VPC 서비스 제어 규칙이 연결을 허용하지 않으면 온프레미스 커넥터 배포가 작동하지 않습니다.

Envoy가 올바르게 설치되도록 하려면 호스트 프로젝트의 VPC 서비스 제어에서 gce-mesh 스토리지 버킷에 대한 액세스를 허용하세요. 또한 VPC에 공개 인터넷으로 트래픽을 허용하는 라우팅 규칙이 있는지 확인합니다. 이렇게 하면 Envoy를 배포할 수 있습니다. 자세한 내용은 인그레스 및 이그레스 규칙을 참조하세요.

온프레미스 애플리케이션이 Envoy에 연결되지 않음

VM에서 온프레미스 애플리케이션을 핑할 수 있지만 온프레미스 커넥터를 사용할 수 없는 경우 Envoy가 애플리케이션에 연결할 수 없습니다.

Envoy가 온프레미스 애플리케이션에 연결할 수 있는지 확인하려면 Envoy를 실행 중인 머신에서 Envoy를 호출해 보세요. SSH를 통해 VM opc-on-prem-app-deployment-ig-${app}에 연결한 후 다음 명령어를 실행하세요. Envoy 포트 번호는 인스턴스 그룹 > 세부정보 > 포트 이름 매핑에서 확인할 수 있습니다.

shell curl -x -v localhost:${envoy_port}

엔드포인트에 연결할 수 없다면 다음을 확인하세요.

  • 오류 로그의 /var/log/envoy/envoy.err.log. 오류 로그가 없으면 다음 명령어를 실행하여 Traffic Director가 사용 설정되어 있고 Envoy를 구성할 수 있는지 확인합니다.
    sudo curl 0.0.0.0:15000/config_dump 
  • TRAFFICDIRECTOR_INTERCEPTION_LISTENER가 설정되었는지 확인합니다. TRAFFICDIRECTOR_INTERCEPTION_LISTENER가 설정되지 않은 경우 Traffic Director가 Envoy를 구성할 수 없습니다.
  • 각 리스너에 오류 메시지가 있는지 확인합니다.

Envoy 및 Traffic Director 계정 권한이 설정되지 않음

envoy.err.logGRPC 403 오류가 표시되거나 Envoy 구성에 TRAFFICDIRECTOR_INTERCEPTION_LISTENER가 표시되지 않으면 올바른 계정 권한이 설정되지 않은 것일 수 있습니다.

VM 서비스 계정에 xDS v3에 대한 TD 액세스 권한이 있는지 확인합니다.

  • 권한 확인: https://cloud.google.com/traffic-director/docs/prepare-for-envoy-setup#grant
  • 계정 확인: https://cloud.google.com/traffic-director/docs/prepare-for-envoy-setup#enable-service

ERR_SSL_VERSION_OR_CIPHER_MISMATCH 오류 문제 해결

로그인 페이지로 리디렉션하지 않고 브라우저에 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 오류가 표시되면 Google Cloud 부하 분산기 세부정보 페이지에서 인증서 상태를 확인하세요.

Google 관리형 인증서를 프로비저닝하는 데 최대 60분이 걸릴 수 있습니다.