3.3. 플랫폼 게이트웨이 프록시 및 인증 서비스 확장에 대한 고려 사항
프록시에 대한 요청 또는 기존 플랫폼 게이트웨이 서비스 기능을 초과하는 경우 플랫폼 게이트웨이 프록시 및 인증 서비스를 확장하는 것이 적합할 수 있습니다. 이 경우 수직 스케일링이 gRPC, Envoy, Nginx 및 WSGI 서비스에 대한 모든 작업자 풀 값을 자동으로 조정하지 않기 때문에 수평 스케일링이 선호됩니다.
추가 플랫폼 게이트웨이 서비스 Pod 또는 인스턴스는 WSGI 웹 서비스 작업자 및 gRPC 인증 서비스 작업자에 필요한 데이터베이스 연결을 늘릴 수 있습니다.
CPU 사용률의 병목 현상을 관찰하면 gRPC 인증 서비스를 확장하면 처리량이 향상될 수 있습니다. 그러나 외부 인증 공급자가 높은 대기 시간 소스인 경우 gRPC 서비스의 수평 확장은 최소한의 이점이 있습니다. 업스트림 서비스 시간과 총 요청 대기 시간 간의 차이를 관찰하여 요청에 대한 gRPC 인증 대기 시간을 확인할 수 있습니다.
가장 강력한 인증 방법은 다음과 같습니다.
- 토큰 인증
- 세션 인증
- CPU 집약적인 암호 해시로 인해 요청 대기 시간이 길어짐에 따라 기본 인증을 사용하지 않아야 합니다. LDAP 인증과 함께 기본 인증을 사용하는 경우 LDAP 서비스에 도달하는 경우 특히 LDAP 서비스에 가용성이 제한된 경우 상당한 대기 시간이 발생할 수 있습니다. 이러한 이유로 API에 대해 자동화를 수행하려면 OAuth 토큰을 생성하는 것이 좋습니다.
각 Envoy는 이를 개별적으로 추적하므로 플랫폼 게이트웨이 서비스 포드를 수평으로 스케일링하는 경우 각 구성 요소의 API에 상태 점검 수를 늘립니다. 로그에서 사용자 에이전트 Envoy/HC 를 사용하여 이를 확인할 수 있습니다. 상태 점검은 사용자가 시작한 요청과 동일한 서비스 및 큐를 통해 진행되므로 과부하로 인해 전체 요청 시간이 느리면 상태 점검도 시간 초과될 수 있습니다. 이 경우 Envoy는 상태 점검을 다시 전달할 때까지 이러한 서비스 노드에 대한 요청 전달을 중지합니다.
3.3.1. OpenShift Container Platform에서 플랫폼 게이트웨이 프록시 및 인증 서비스 스케일링을 위한 특별한 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
100개 이상의 요청이 다시 로깅된 경우 uWSGI에 의해 이러한 요청이 삭제되므로 OpenShift Container Platform에서 서비스가 수평으로 확장되는 것이 특히 중요합니다. 이로 인해 클라이언트에서 삭제된 요청에 대한 시간 초과를 수신합니다. 다음 로그 텍스트는 이 이벤트에 대한 해당 오류를 제공합니다.
*** uWSGI listen queue of socket ":8000" (fd: 3) full !!! (101/100) ***
이 오류는 커널 매개변수 somaxconn 으로 백로그 길이를 연결하는 uWSGI의 제한으로 인해 발생합니다. OpenShift Container Platform에서 이 커널 매개변수를 늘릴 수 있지만 이렇게 하려면 "보안되지 않은 sysctl"이 필요합니다.