본문 바로가기

공부기록/MLOps | Infra

[k8s] Managing Application Logs

반응형

Managing Application Logs

  • 컨테이너 오케스트레이터를 사용하는 환경에서 로그를 수집할 때 주의해야할 점 중 하나는 특별한 상황을 제외하고는 로그를 로컬 디스크에 파일로 저장하지 않아야 한다.
  • 전통적인 애플리케이션 운영환경에선 로그를 로컬 디스크에 저장하고 일정 시간 이상 저장하거나 일정 용량이 되면 오래된 로그를 삭제한다.
    -이런 방식은 지정된 장비에서 실행된다는 것을 가정하므로 문제 발생시 로그를 확인해야한다.
    • 컨테이너 오케스트레이터를 사용하는 시스템이면 컨테이너가 상황에 따라 클러스터 안의 여러 노드를 옮겨다니기 때문에 로그를 일일히 확인하는 것이 어렵다. 따라서 어떤 클러스터의 노드 중 어떤 컨테이너가 실행되었는지를 확인해야 로그를 확인할 수 있다.


파드 로그 확인하기

  • kubectl은 개별 노드에 접근하지 않고 직접 파드의 로그를 확인할 수 있다.

1.kubectl get pods 명령어로 파드의 이름을 확인한다.

  1. kubectl get pods

2. 포트 포워드로 파드에 접근할 수 있는 포트 번호를 설정

  1. kubectl port-forward pods/파드 이름 8080:8080

3. 새로운 셀을 열어 로그 확인

  1. kubectl logs -f 파드 이름
  • pods는 여러개의 container를 가질 수 있었는데 이럴 경우 로그를 보기 위해서는 반드시 명령어에 container의 이름을 명시해주어야한다.
  • kubectl logs -f 파드-이름 컨테이너-이름
반응형