CKA
(TIL) Kubernetes의 Pod
심플코더
2025. 3. 13. 09:29
Pod란
Pod는 Kubernetes에서 배포 가능한 가장 작은 단위이다.
Pod는 하나 이상의 컨테이너를 포함하며, 일반적으로는 Pod 하나당 하나의 컨테이너가 존재한다.
Pod의 기본 구조
Pod는 다음과 같은 요소들로 구성되어있다.
- Container
- Volumes
- Networking
Pod를 사용하는 이유
왜 굳이 컨테이너를 단독으로 실행하지 않고 Pod로 한번 감싼 후 동작하는 방식으로 되어있는지 의아할 수 있다.
각 방식이 가지는 차이점은 다음과 같다.
Docker Standalone | Pod |
---|---|
개별 컨테이너를 직접 실행 | Pod를 통해 컨테이너를 실행 |
컨테이너 간 네트워크 설정 필요 | Pod 내부 컨테이너는 자동으로 연결 |
컨테이너의 상태를 직접 관리해야함 | Kubernetes가 Pod의 상태를 자동으로 관리 |
즉, Pod를 사용하면 Kubernetes를 통해 컨테이너의 상태를 더 쉽게 관리할 수 있다.
Pod의 동작 방식
하나의 컨테이너만 포함하는 Pod의 경우 아래와 같은 yaml 파일로 정의할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: my-webapp
spec:
containers:
- name: webapp
image: my-webapp:latest
상황에 따라 하나의 Pod에서 여러 컨테이너를 실행할 수도 있으며, 해당 상황에선 아래와 같은 yaml 파일로 정의할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: webapp
image: my-webapp
- name: helper
image: helper-container
Pod 생성 및 관리
Kubernetes에서 Pod를 생성하려면 kubectl run
명령어를 사용한다.
kubectl run my-nginx --image=nginx
위 명령어를 nginx 컨테이너를 실행하는 Pod를 생성한다.
이후 Pod이 정상적으로 생성되었는지 확인하려면 다음과 같은 명령어를 사용한다.
kubectl get pods
Pod의 내부 정보를 확인하기위해서는 아래와 같은 명령어를 사용한다.
kubectl describe pod
위 명령어를 사용하면 컨테이너 이미지, 네트워크 IP주소, 상태, 이벤트 등의 정보를 확인할 수 있다.
Pod을 삭제하려면 다음과 같은 명령어를 실행하면된다.
kubectl delete pod my-nginx