⭐ 핵심 개념 정리
YAML
서비스 간에 데이터를 주고받을 때 사용하는 데이터 직렬화 포맷 중 하나다. JSON, XML과 동일한 역할을 하지만 사람이 읽기 더 쉬운 구조로 되어 있다. Kubernetes에서 리소스를 정의할 때 주로 사용한다.
⚠️ YAML은 들여쓰기에 Tab이 아닌 Space(공백)를 사용해야 한다.
Pod
쿠버네티스에서 배포 가능한 가장 작은 컴퓨팅 단위다. 컨테이너를 감싸는 단위로, Pod 단위로 스케줄링, 로드 밸런싱, 스케일링 등의 관리 작업이 이루어진다.
- 하나의 Pod는 한 개 또는 여러 개의 컨테이너로 구성된다
- Pod 내부의 컨테이너들은 네트워크, 스토리지 등의 자원을 공유한다
- 어떤 애플리케이션을 배포하려면 최소 Pod 단위로 구성해야 한다
⭐ Minikube + kubectl 설치하기
0) Minikube를 원활하게 실행하려면 충분한 vCPU와 메모리가 필요하기 때문에, Azure VM의 크기를 적절하게 조정한다.

1) Minikube 실행 파일을 Ubuntu 서버에 다운로드한다.
curl -LO https://storage.googleapis.com/minikube/releases/v1.22.0/minikube-linux-amd64
2) 다운로드한 파일을 /usr/local/bin/minikube 위치에 설치한다.
이 경로에 설치하면 터미널 어디서든 minikube 명령어를 사용할 수 있다.
sudo install minikube-linux-amd64 /usr/local/bin/minikube
3) 설치가 정상적으로 완료되었는지 확인한다. 도움말이 출력되면 성공이다.
minikube help

4) Kubernetes 클러스터를 제어하는 CLI 도구인 kubectl을 다운로드한다.
curl -LO https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl
5) 다운로드한 kubectl 파일을 실행 가능한 명령어로 설치한다.
sudo install -o root -g root -m0755 kubectl /usr/local/bin/kubectl
6) kubectl 클라이언트 버전을 확인한다.
kubectl version

⭐ 클러스터 시작 및 상태 확인하기
1) Docker 드라이버를 사용하여 Minikube Kubernetes 클러스터를 생성하고 실행한다.
minikube start --driver=docker

2) Minikube 구성 요소가 정상적으로 실행 중인지 확인한다. host, kubelet, apiserver가 Running, kubeconfig가 Configured 상태이면 정상이다.
minikube status

3) default namespace에 있는 Pod 목록을 확인한다. 아직 직접 만든 Pod가 없으면 No resources found가 나와도 정상이다.
kubectl get pod
4) Kubernetes 시스템 namespace에 있는 Pod들을 확인한다. coredns, etcd, kube-apiserver 등의 Pod가 보인다.
kubectl get pod -n kube-system
5) 클러스터 삭제 및 재생성 과정을 확인하기 위해 현재 생성된 Minikube 클러스터를 삭제한다.
minikube delete

⭐ Pod 생성 및 관리하기
1) Minikube 클러스터를 다시 생성하고 실행한다.
minikube start --driver=docker
2) counter Pod를 정의할 YAML 파일을 생성한다. vi가 열리면 i를 눌러 입력 모드로 들어간다.
vi pod.yaml
3) vi 편집기에서 아래 내용을 작성한 후, Esc → :wq를 입력해 저장하고 종료한다.
해당 YAML 파일은 BusyBox 컨테이너를 실행하여 1초마다 숫자와 현재 시간을 출력하는 Kubernetes Pod를 생성한다.
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: busybox
args:
- /bin/sh
- -c
- 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done'
4) 작성한 pod.yaml 파일 내용이 제대로 저장되었는지 확인한다.
cat pod.yaml

5) pod.yaml 파일을 Kubernetes 클러스터에 적용하여 counter Pod를 생성한다.
kubectl apply -f pod.yaml
6) Pod 생성 후 아래 명령어로 상태를 확인할 수 있다.
| 명령어 | 설명 | 참고 |
| kubectl get pod | default namespace의 Pod 목록 확인 | 가장 기본적인 Pod 상태 확인 명령어 |
| kubectl get pod counter | counter Pod 하나만 따로 조회 | 특정 Pod의 실행 상태 확인 |
| kubectl describe pod counter | 상세 상태, 컨테이너 정보, 이벤트 확인 | Pod가 정상 실행되지 않을 때 원인 파악에 유용 |
| kubectl logs counter | counter Pod의 출력 로그 확인 | 1초마다 숫자와 시간이 정상 출력되는지 확인 |
| kubectl get pod -w | Pod 상태 변화를 실시간으로 확인 | 종료 시 Ctrl + C |
| kubectl get pod -A | 전체 namespace의 Pod 목록 확인 | 모든 namespace의 Pod를 한 번에 확인 |
| kubectl get -f pod.yaml | pod.yaml 파일에 정의된 리소스의 현재 상태 확인 | kubectl get pod -f가 아니라 kubectl get -f pod.yaml 형태로 입력 |







7) counter Pod 안의 컨테이너에 셸로 접속한다.
kubectl exec -it counter -- /bin/sh
접속 후 빠져나오려면 exit를 입력한다.
8) pod.yaml 파일로 생성했던 counter Pod를 삭제하고, 정상적으로 삭제되었는지 확인한다.
삭제 후 No resources found in default namespace가 나오면 정상이다.
kubectl delete -f pod.yaml
kubectl get pod

'클라우드응용SW개발' 카테고리의 다른 글
| [Cloud] 13주차. Azure CLI와 ACR을 활용한 Docker 컨테이너 웹앱 배포 (0) | 2026.06.04 |
|---|---|
| [Cloud] 12주차-3. Kubernetes Deployment 실습 (0) | 2026.06.04 |
| [Cloud] 12주차-1. 쿠버네티스와 Minikube (0) | 2026.06.04 |
| [Cloud] 11주차-2. Docker 설치 및 이미지 빌드 실습 (0) | 2026.06.03 |
| [Cloud] 11주차-1. 컨테이너 기술과 Docker의 이해 (0) | 2026.06.03 |