Custom Columns


k get deployments.apps -n=admin2406 -o=json
k get deployments.apps -n=admin2406 -o=custom-columns=DEPLOYMENT:.metadata.name,CONTAINER_IMAGE:.spec.template.spec.containers[0].image,READY_REPLICAS:.status.readyReplicas,NAMESPACE:.metadata.namespace > /opt/admin2406_data

K8s Object 의 특정 정보를 취합해서 파일로 저장하고 싶을 때 custom-columns 옵션을 활용할 수 있다. json 옵션을 사용했을 때 출력되는 계층을 따라 특정 정보에 접근할 수 있다.

kubectl logs


kubectl logs -l app=log-lab --prefix

--prefix 옵션으로 로그 앞에 어느 파드의 어느 컨테이너에서 생성된 로그인지 확인 가능

kubectl logs -l app=log-lab --prefix --since=10m

--since 옵션으로 최근 시간 내에 생성된 로그만 확인 가능

kubectl logs -l app=log-lab --prefix --since=10m --tail=100

--tail 옵션으로 최근 로그 갯수 제한 가능

Some useful grep

kubectl logs -l app=log-lab --prefix --since=10m --tail=100 | grep -iE 'error|warn'

grep -E 로 여러 키워드를 매칭해서 필터링 가능, -i 옵션까지 추가하면 대소문자 구분하지 않고 확인

kubectl logs -l app=log-lab --prefix --since=10m --tail=100 | grep -F "connection refused"

grep -F 로 문자열 검색

kubectl logs -l app=log-lab --prefix --since=10m --tail=100 | grep -w "ERROR"

grep -w 로 단어 단위로 매칭

kubectl logs -l app=log-lab --prefix --since=10m --tail=100 | grep -C2 'error'

grep -C2 (Context 의 C) 로 매칭된 로그 앞 뒤로 2줄을 추가로 보여줄 수 있다

kubectl logs -l app=log-lab --prefix --since=10m --tail=100 | grep -A2 'error'

grep -A2 (After 의 A) 로 매칭된 로그 뒤 2줄을 추가로 보여줄 수 있다

kubectl logs -l app=log-lab --prefix --since=10m --tail=100 | grep -B2 'error'

grep -B2 (Before 의 B) 로 매칭된 로그 전 2줄을 추가로 보여줄 수 있다

kubectl logs -l app=log-lab --prefix -f | grep -E 'ERROR|WARN'

-f 로 실시간 로그 확인, grep 조합으로 원하는 로그만 추출 가능

References