InfoGrab Docs

Web terminals (deprecated)

Information about Web terminals.

히스토리 이 기능은 GitLab 14.5에서 더 이상 사용되지 않습니다 . GitLab 15.0에서 GitLab Self-Managed에서 비활성화 되었습니다. Feature flag GitLab Self-Managed에서 기본적으로 이 기능은 사용할 수 없습니다. 사용 가능하게 하려면 관리자가 certificate_based_clusters 라는 기능 플래그를 활성화 할 수 있습니다. 더 이상 사용되지 않는 Web IDE를 통해 액세스할 수 있는 웹 터미널 에 대해 더 읽어보세요. 더 이상 사용되지 않는 실행 중인 CI 작업에서 액세스할 수 있는 웹 터미널 에 대해 더 읽어보세요. Kubernetes 통합 의 도입으로 GitLab은 Kubernetes 클러스터의 자격 증명을 저장하고 사용할 수 있습니다. GitLab은 이러한 자격 증명을 사용하여 환경의 웹 터미널 에 액세스를 제공합니다. Note 프로젝트에서 Maintainer 역할 이상의 사용자만 웹 터미널에 액세스합니다. 웹 터미널 작동 방식 # 웹 터미널의 아키텍처와 작동 방식에 대한 자세한 개요는 이 문서 에서 확인할 수 있습니다. 간략하게: GitLab은 사용자가 자체 Kubernetes 자격 증명을 제공하고 배포할 때 생성하는 파드에 적절하게 레이블을 지정하는 것에 의존합니다. 사용자가 환경의 터미널 페이지로 이동하면 GitLab으로 다시 WebSocket 연결을 여는 JavaScript 애플리케이션이 제공됩니다. WebSocket은 Rails 애플리케이션 서버가 아닌 Workhorse 에서 처리됩니다. Workhorse는 연결 세부 정보와 사용자 권한에 대해 Rails를 쿼리합니다. Rails는 Sidekiq 을 사용하여 백그라운드에서 Kubernetes를 쿼리합니다. Workhorse는 사용자 브라우저와 Kubernetes API 사이에서 프록시 서버 역할을 하여 두 사이에서 WebSocket 프레임을 전달합니다. Workhorse는 정기적으로 Rails를 폴링하여 사용자가 더 이상 터미널에 액세스할 권한이 없거나 연결 세부 정보가 변경된 경우 WebSocket 연결을 종료합니다. 보안 # GitLab과 GitLab Runner 는 인터랙티브 웹 터미널 데이터를 두 사이에서 암호화하고 모든 것을 권한 가드로 보호하기 위해 몇 가지 예방 조치를 취합니다. 이에 대한 자세한 내용은 아래에 설명되어 있습니다. 인터랙티브 웹 터미널은 [session_server] 가 구성되지 않으면 완전히 비활성화됩니다. runner가 시작될 때마다 wss (Web Socket Secure) 연결에 사용되는 x509 인증서가 생성됩니다. 생성된 모든 작업에 대해 작업 종료 시 삭제되는 임의의 URL이 생성됩니다. 이 URL은 웹 소켓 연결을 설정하는 데 사용됩니다. 세션 URL 형식은 (IP|HOST):PORT/session/$SOME_HASH 이며 IP/HOST 및 PORT 는 구성된 listen_address 입니다. 생성된 모든 세션 URL에는 wss 연결을 설정하기 위해 전송해야 하는