[45편] 컨테이너 안에서 한 작업도 다시 재생해봤다
2026년 11월 13일
컨테이너에 접속했다는 기록을 보고 나면, 그 안에서 무슨 작업을 했는지도 궁금해진다. 장애를 점검하다 어떤 파일을 읽었는지, 화면에는 어떤 값이 나왔는지까지 확인할 수 있으면 작업 내용을 훨씬 쉽게 이해할 수 있다.
이번에는 테스트 Pod에 들어가 짧은 점검을 하고, Pod Session Recordings에서 그 작업을 다시 재생해봤다. 접속 기록과 실제 터미널 화면을 함께 볼 수 있다는 점이 가장 인상적이었다.
실습 클러스터의 녹화 설정부터 확인했다
관리자 화면에서 acp-kac-lab 클러스터를 열었다. Logging Options의 Pod Session Recording은 On이었다. Request Audit도 켜져 있어, 셸 접속 요청과 세션 녹화를 함께 살펴볼 수 있는 상태였다.

실습에는 ep45-session-demo라는 Pod를 따로 준비했다. 컨테이너 안에는 service, environment, status가 적힌 가상 상태 파일을 넣었다. 실제 서비스 데이터 없이 점검 과정을 확인하기 위한 구성이다.
QueryPie에는 Orders Lab Pod Inspector 역할을 만들었다. 연결한 정책에서 orders-lab의 Pod 조회와, 이 테스트 Pod의 pods/exec 작업을 허용했다. 점검에 사용할 테스트 계정에는 이 역할을 부여했다.

Pod 안에서 평소 하던 점검을 해봤다
테스트 계정으로 QueryPie의 Web Client를 열었다. orders-lab에서 ep45-session-demo를 선택하니 Pod 상태는 Running, diagnostics 컨테이너는 Ready로 표시됐다. 상세 화면의 Shell 버튼을 눌러 접속했다.

셸에서 id와 hostname을 실행했다. uid와 gid는 10001이었고, 호스트 이름은 ep45-session-demo였다. 이어서 cat /lab/health.txt로 상태 파일을 읽었다. service는 orders-demo, environment는 lab, status는 READY로 나왔다.
마지막으로 EP45_POD_CHECK_COMPLETE라는 문구를 출력했다. 나중에 녹화를 볼 때 이번 점검을 바로 알아볼 수 있도록 넣은 표시다. 확인을 마친 뒤 exit로 셸을 정상 종료했다.

작업이 끝난 뒤 녹화 목록을 열었다
관리자 화면의 Audit → Kubernetes → Pod Session Recordings로 이동했다. 방금 사용한 테스트 계정 Demo Approver의 세션이 목록에 있었다. 클러스터는 acp-kac-lab, 역할은 Orders Lab Pod Inspector로 기록됐다.
이번에 확인할 항목은 12시 54분 50초에 시작한 세션이었다. 접속 시각과 사용자, 역할을 함께 볼 수 있어서 어느 작업을 열어야 할지 쉽게 찾을 수 있었다.

입력한 명령과 출력 결과가 그대로 보였다
시각을 클릭하자 Pod Session Record 창이 열렸다. 사용자 이름, 시작 시각, Request Source와 Command가 위쪽에 나오고, 아래에는 Replay 화면이 있었다. 이번 기록의 접속 방식은 Web Client, 실행한 셸은 sh였다.
재생 버튼을 누르니 조금 전 입력했던 명령이 순서대로 나타났다. id의 실행 결과, Pod 이름, 상태 파일의 READY 값까지 확인할 수 있었다. 어떤 명령을 썼는지와 그때 무엇을 보고 판단했는지가 함께 보였다.

마지막에는 점검 완료 문구와 exit도 남아 있었다. 재생 시간은 약 14초였다. 재생 막대에서 앞부분을 선택해 해당 시점부터 다시 볼 수도 있었다.

작업 내용을 인수인계할 때도 이런 기록이 있으면 편하겠다. 담당자가 어떤 순서로 상태를 확인했고 어떤 결과를 봤는지, 관리자가 같은 화면을 보며 이해할 수 있기 때문이다.
감사 기록에서 해당 녹화로 바로 이어졌다
Request Audit에서도 같은 작업을 찾아봤다. 12시 54분 50초의 셸 시작과 12시 55분 4초의 종료가 각각 기록돼 있었다. 종료 기록에는 Success, ALLOW와 함께 exit code 0, 13.82초라는 결과가 표시됐다.
사용자와 역할뿐 아니라 orders-lab 네임스페이스, pods/exec, ep45-session-demo도 확인할 수 있었다. 상세 화면의 Session Recording 링크를 누르니 방금 재생한 세션이 다시 열렸다.

직접 써보니 접근 권한을 관리하는 화면과 실제 작업을 확인하는 기록이 이어져 있다는 점이 좋았다. 누가 컨테이너에 들어갔는지 확인한 다음, 그 안에서 무엇을 했고 어떤 결과를 봤는지까지 자연스럽게 따라갈 수 있었다.
도입 담당자 입장에서는 운영 작업을 설명할 자료가 구체적으로 남는다는 점이 매력적이다. 이번 실습에서도 접속한 사용자, 부여된 역할, 점검 명령과 출력, 정상 종료 결과를 하나의 작업으로 연결해 확인할 수 있었다.
실습은 QueryPie Community 11.6.7의 Web Client와 K3s 1.36.6에서 진행했다. 사용자와 Pod, 상태 파일은 모두 실습용이며, 작업 후 추가한 점검 역할은 회수했다.
참고: QueryPie Pod Session Recordings 안내
![[44편] kubectl을 그대로 쓰면서 접근 범위를 나눠봤다](/assets/content/acp-lab-notes/kubectl-access-control/01.webp)
![[46편] 서버 계정 비밀번호를 QueryPie에서 바꿔봤다](/assets/content/acp-lab-notes/password-provisioning/01.webp)