1단계: 뭘 만드는가?
"Create a pod" / "Create a deployment" / "Create a ConfigMap"
→ 기본 명령어 결정
2단계: 이름은?
"named XXX" → NAME 위치에 넣기
3단계: 어디에?
"in namespace XXX" → -n XXX
4단계: 어떤 이미지?
"using image XXX" → --image=XXX
5단계: 추가 속성?
"with label" / "replicas" / "port" 등 → 해당 옵션 추가
6단계: 데이터/연결?
"with: KEY=VALUE" → --from-literal
"as environment variables" → envFrom
"mount as volume at /path" → volumes + volumeMounts
키워드 → 명령어 총정리
문제 표현
명령어/옵션
Create a pod
kubectl run
Create a deployment
kubectl create deployment
Create a ConfigMap
kubectl create configmap
Create a Secret
kubectl create secret generic
Expose
kubectl expose
named “XXX”
NAME 위치 또는 --name=XXX
using image XXX
--image=XXX
in namespace XXX
-n XXX
with replicas X
--replicas=X
with label key=value
--labels='key=value' (run만!)
on port XX
--port=XX
with: KEY=VALUE
--from-literal=KEY=VALUE (반복!)
as environment variables
envFrom
mount as a volume at /path
volumes + volumeMounts
as a ClusterIP/NodePort
--type=ClusterIP / --type=NodePort
Command: XXX
--command -- XXX
핵심 구분
“as environment variables” → envFrom
“at /some/path” 경로 언급 → volumes + volumeMounts
1. dry-run 뼈대 생성 (모든 문제의 시작)
# Podkubectl run NAME --image=IMAGE --dry-run=client -o yaml > pod.yaml# Deploymentkubectl create deployment NAME --image=IMAGE --replicas=N --dry-run=client -o yaml > deploy.yaml# Servicekubectl expose deployment NAME --port=80 --name=SVC_NAME --dry-run=client -o yaml > svc.yaml# ConfigMapkubectl create configmap NAME --from-literal=KEY=VALUE --dry-run=client -o yaml# Secretkubectl create secret generic NAME --from-literal=KEY=VALUE --dry-run=client -o yaml
# 라벨 추가kubectl label TYPE NAME key=value# 라벨 확인kubectl get TYPE NAME --show-labels# 라벨로 필터kubectl get pods -l app=nginx# 라벨 삭제kubectl label TYPE NAME key-
# 필드 확인kubectl explain pod.spec.containers.resources.limitskubectl explain pod.spec.containers.resources.requests# 검증kubectl describe pod POD_NAME | grep -A 10 "Limits\|Requests"
9. 검증 명령어
# Pod 상태kubectl get pods# 환경변수 확인kubectl exec POD_NAME -- env | grep KEY# 마운트 파일 확인kubectl exec POD_NAME -- ls /mount/pathkubectl exec POD_NAME -- cat /mount/path/file# 서비스 확인kubectl get svc SVC_NAME# 라벨 확인kubectl get TYPE NAME --show-labels# Pod 상세 (트러블슈팅)kubectl describe pod POD_NAME
📅 2026-02-08 모의고사 기록
Q1 Pod 생성: ~4분
Q2 Deployment + Label: ~8분 (label 타입 혼동)
Q3 Service Expose: ~4분 (flag 오타)
Q4 ConfigMap + envFrom: ~15분 (vim 편집 고전)
Q5 Secret + Volume: ~15분 (—comand 오타, vim 고전, 터미널 크래시)
Q6 Resource Limits: 깔끔 통과
Q7 Multi-Container + emptyDir: kubectl explain 활용, 터미널 크래시
목표: 내일 30분 이내 클리어