워크로드를 빌드, 테스트, 실행할 때는 문제를 디버그하기 위해 진행 상황을 모니터링하는 것이 유용할 수 있습니다. 다음 도구를 사용하여 모니터링 및 디버깅할 수 있습니다.
Cloud Logging: Confidential Space 워크로드 문제 해결의 첫 번째 단계로
STDOUT
및STDERR
를 Cloud Logging으로 리디렉션한 다음 워크로드 반환 코드를 확인하여 실패가 발생한 위치를 확인할 수 있습니다.디버그 Confidential Space 이미지: 디버그 Confidential Space 이미지는 워크로드가 완료된 후 워크로드를 실행하는 Confidential VM을 계속 작동하도록 유지하고 SSH 서버를 실행합니다. 이렇게 하면 원격으로 VM에 로그인하여 문제를 진단할 수 있습니다. 코드가 제대로 작동하는지 확신할 때까지 디버그 이미지를 사용하는 것이 좋습니다. 민감한 프로덕션 데이터로 작업을 시작할 때는 프로덕션 Confidential Space 이미지로 전환합니다.
메모리 사용량 모니터링: Cloud Logging 또는 측정항목 탐색기에서 워크로드의 메모리 사용량을 볼 수 있습니다. 메모리 사용량을 추적하려면 워크로드 작성자가 허용하고 워크로드 운영자가 사용 설정해야 합니다.
대화형 셸: SSH를 사용하여 워크로드 기밀 VM에 연결한 후
sudo ctr task exec -t --exec-id shell tee-container bash
명령어를 사용하여 컨테이너 내에서 대화형 셸을 입력하여 워크로드 문제를 진단할 수 있습니다.
로깅
다른 명령줄 프로그램과 마찬가지로 워크로드 STDOUT
및 STDERR
를 콘솔에 표시할 수 있습니다. 워크로드 운영자가 Confidential Space VM에서 tee-container-log-redirect
메타데이터 키를 true
또는 cloud_logging
로 설정하고 워크로드를 실행하는 서비스 계정에 logging.logWriter
역할을 부여하여 Cloud Logging으로 리디렉션할 수도 있습니다.
워크로드 작성자는 log_redirect
실행 정책을 사용하여 리디렉션을 방지할 수 있습니다.
위험 프로필을 줄이려면 최소한의 정보를 로깅하고 민감한 정보는 로깅하지 마세요.
Confidential Space 로그 보기
Confidential Space VM에 연결된 서비스 계정에 logging.logWriter
역할이 부여되었고 로그를 Cloud Logging으로 리디렉션한 경우 VM 로그를 확인하여 오류를 문제 해결할 수 있습니다.
Google Cloud 콘솔의 워크로드 운영자 프로젝트에서 Logging으로 이동합니다.
검색 탭 옆에 있는 기간을 클릭하여 확인하려는 로깅 기간을 설정합니다.
사용 가능한 경우 다음 로그 필드로 로그를 필터링합니다.
리소스 유형: VM 인스턴스
인스턴스 ID: 컨피덴셜 VM의 인스턴스 ID입니다.
로그 이름: confidential-space-launcher
오류 메시지를 읽고 문제가 무엇인지 확인합니다. 리소스가 올바르게 설정되지 않았거나, 데이터 공동작업자의 WIP 제공자의 속성 조건이 Confidential Space 워크로드에서 수행된 클레임과 일치하지 않을 수 있습니다. 또는 워크로드 자체에 오류가 있을 수 있습니다.
반품 코드
반환 코드는 런처 및 워크로드를 실행할 때 콘솔에 표시되며 Cloud Logging으로 리디렉션될 수 있습니다.
반환 코드는 다음 표에 설명되어 있습니다.
코드 | 정의 | VM 중지 동작 |
---|---|---|
0 | 프로덕션 이미지를 사용할 때 워크로드가 성공적으로 완료됨 | 워크로드가 완료되면 VM이 중지됩니다. |
1 | 프로덕션 이미지를 사용할 때 워크로드 또는 런처가 오류를 반환함 | VM은 오류를 반환한 후 중지됩니다. |
3 | tee-restart-policy 로 인한 실패 후 런처가 다시 시작됨 |
VM이 다시 시작됩니다. |
4 | 디버그 이미지를 사용할 때 워크로드 또는 런처 실행이 완료되었고, 이제 VM이 유휴 상태임 | 워크로드가 완료되거나 오류를 반환한 후에도 VM이 중지되지 않습니다. 이렇게 하면 SSH를 통해 워크로드를 디버그할 수 있습니다. |
워크로드가 실패하면 워크로드 운영자는 추가 컨텍스트 없이 workload finished with a non-zero return code
메시지만 수신합니다. 프로덕션 이미지의 경우 tee-restart-policy=OnFailure
를 사용하여 실패 시 런처를 다시 시작하도록 설정할 수 있습니다.