Linux 운영 기술 퀴즈
이 퀴즈는 Kubernetes 환경에서 활용되는 Linux 운영 기술에 대한 이해도를 테스트합니다.
객관식 문제
- 환경 변수를 자식 프로세스에서 사용할 수 있도록 하는 명령어는?
- A) set
- B) export
- C) declare
- D) env
정답 보기
정답: B) export
.bashrc는 언제 실행되나요?- A) 로그인 쉘에서만
- B) 모든 쉘 세션에서
- C) 비로그인 대화형 쉘에서
- D) 항상 .bash_profile과 동시에
정답 보기
정답: C) 비로그인 대화형 쉘에서
${REPLICAS:-3}의 의미는?- A) REPLICAS를 3으로 설정
- B) REPLICAS가 미설정이거나 빈 문자열이면 3을 사용
- C) REPLICAS에서 3을 뺌
- D) 에러 발생
정답 보기
정답: B) REPLICAS가 미설정이거나 빈 문자열이면 3을 사용
awk 'NR>1 {print $1}'의 의미는?- A) 모든 줄의 첫 번째 필드 출력
- B) 첫 번째 줄만 출력
- C) 첫 번째 줄 제외하고 첫 번째 필드 출력
- D) 첫 번째 필드가 있는 줄만 출력
정답 보기
정답: C) 첫 번째 줄 제외하고 첫 번째 필드 출력
sed -i 's/old/new/g'에서g의 역할은?- A) 대소문자 무시
- B) 줄의 모든 일치 항목 치환
- C) 한 번만 치환
- D) 정규표현식 사용
정답 보기
정답: B) 줄의 모든 일치 항목 치환
jq -r에서-r의 역할은?- A) 재귀 검색
- B) 역순 출력
- C) 따옴표 없이 raw 문자열 출력
- D) 읽기 전용
정답 보기
정답: C) 따옴표 없이 raw 문자열 출력
ssh -L 8080:localhost:80 user@server의 의미는?- A) 서버 8080을 로컬 80으로
- B) 로컬 8080을 서버 80으로
- C) 서버 80을 로컬 8080으로
- D) 로컬 80을 서버 8080으로
정답 보기
정답: B) 로컬 8080을 서버 80으로
- vmstat의
wa는 무엇인가요?- A) 웹 애플리케이션 CPU
- B) I/O 대기 시간 비율
- C) 경고 횟수
- D) 활성 프로세스 수
정답 보기
정답: B) I/O 대기 시간 비율
- LVM Physical Volume 생성 명령어는?
- A) lvcreate
- B) vgcreate
- C) pvcreate
- D) fscreate
정답 보기
정답: C) pvcreate
curl -s -o /dev/null -w "%{http_code}" URL의 출력은?- A) 응답 본문
- B) 응답 헤더
- C) HTTP 상태 코드
- D) 응답 시간
정답 보기
정답: C) HTTP 상태 코드
단답형 문제
- 파일 내용을 현재 쉘에서 실행하는 명령어는?
정답 보기
정답: source (또는 .)
- JSON 파싱 도구는?
정답 보기
정답: jq
- bastion 경유 SSH 옵션은?
정답 보기
정답: ProxyJump (또는 -J)
- 디스크 I/O 모니터링 명령어는?
정답 보기
정답: iostat
- Pod 서비스 계정 토큰 경로는?
정답 보기
정답: /var/run/secrets/kubernetes.io/serviceaccount/token
기본 projected 토큰 경로이며 automount 비활성화 시 없을 수 있습니다. 토큰은 갱신됩니다.
실습 문제
- DATABASE_URL 필수, TIMEOUT 기본값 30인 스크립트를 작성하세요.
정답 보기
bash
#!/bin/bash
: "${DATABASE_URL:?DATABASE_URL required}"
TIMEOUT=${TIMEOUT:-30}- 일반/init 컨테이너의 재시작 합계가 3회 이상인 Pod를 JSON으로 출력하는 명령을 작성하세요.
정답 보기
bash
kubectl get pods -A -o json | jq '[.items[] | select(([(.status.containerStatuses[]?, .status.initContainerStatuses[]?) | .restartCount] | add // 0) >= 3)]'- bastion 경유 rsync로 yaml 파일만 동기화하는 명령을 작성하세요.
정답 보기
bash
rsync -avzP --prune-empty-dirs --include='*/' --include='*.yaml' --exclude='*' -e "ssh -J bastion" /src/ user@host:/dest/심화 문제
- 노드 진단 스크립트를 작성하세요.
정답 보기
bash
#!/bin/bash
echo "=== System ===" && uptime && free -h && df -h
echo "=== kubelet ===" && systemctl status kubelet --no-pager- ConfigMap 환경 변수 vs 볼륨 마운트 차이를 설명하세요.
정답 보기
- 환경 변수: Pod 시작 시 로드, 변경 시 재시작 필요
- 볼륨 마운트: kubelet 동기화 주기와 캐시/watch 지연 후 갱신됩니다. 애플리케이션이 파일을 다시 읽거나 reload해야 하며 subPath 마운트는 갱신되지 않습니다.
검증 참고 자료
- https://kubernetes.io/docs/concepts/storage/volumes/#local
- https://kubernetes.io/docs/concepts/storage/storage-classes/#local
- https://kubernetes.io/docs/tasks/run-application/access-api-from-pod/
- https://kubernetes.io/docs/concepts/configuration/configmap/
- https://kubernetes.io/docs/reference/kubectl/generated/kubectl_wait/
- https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
- https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
- https://download.samba.org/pub/rsync/rsync.1
- https://github.com/mikefarah/yq
- https://busybox.net/downloads/BusyBox.html
- https://github.com/docker-library/official-images/blob/master/library/busybox