💡 Pod
- 쿠버네티스에서 다루는 가장 기본적인 단위를 의미하는 오브젝트이다
- 쿠버네티스에서 가장 기본이 되는 배포 단위이자, 컨테이너를 감싸는 논리적인 단위이다
- 컨테이너 여러개를 묶어서 하나의 역할을 하는 작은 가상의 컴퓨터처럼 동작한다
- 내부에 있는 컨테이너들은 같은 IP와 포트를 공유하고, 같은 네트워크 공간을 사용한다
- 같은 pod 안에서는 같은 포트를 공유할 수 없다
- 일반적으로 하나의 컨테이너만 포함하는 구조가 많다 (유지보수 & 디버깅을 위해)

| pod 안에 여러 컨테이너를 넣는 이유
- 하나의 기능을 완성하려면 여러 컴포넌트가 필요하다
- 여러 앱을 하나의 컨테이너에 넣다 보면 문제를 파악하는데 어려움을 겪을 수 있다
- 일반적으로 컨테이너 하나에는 앱을 하나만 넣는다
- 쿠버네티스는 Pod 단위로 동작한다
- 컨테이너 단위로 조작하는 경우는 거의 없다
🔶 Pod 만들어보기
( ⚠️ GCP 클러스터 생성 ⬇️ )
2025.04.19 - [IT/Cloud & DevOps] - 클라우드 환경에서 쿠버네티스 클러스터 만들기
( ⚠️ GCP 컨테이너 레지스트리 ⬇️ )
2025.04.18 - [IT/Cloud & DevOps] - 컨테이너 레지스트리란? GCP Artifact Registry 로 실습해보기
✅ sample-pod.yaml 작성
apiVersion: v1
kind: Pod
metadata:
name: sample-pod
namespace: default
spec:
containers:
- name: nginx
image: nginx:1.27.0
ports:
- containerPort: 80
- apiVersion: v1 : 쿠버네티스 리소스 형식 버전 (v1은 기본 Pod 형식) / 거의 고정 값이다
- kind : 객체(오브젝트) 종류
- metadata : 이름, 네임스페이스 등 기본 정보 (오브젝트 이름)
- spec : 실행할 컨테이너 정보
- containerPort: 80 nginx가 80포트 사용한다
- YAML 형식은 인프라 선언 시 많이 사용되며, 직관적이고 간결한 구성에 유리하여 많이 쓰인다
| json으로 표현해 보면 이런 느낌 ⬇️


✅ Pod 생성
kubectl apply -f sample-pod.yaml
쿠버네티스에 내 파일을 적용시켜라
- apply : 선언적 방식으로 리소스를 적용
- f : 파일 지정

✅ Pod 확인
kubectl get pods
현재 클러스터에 있는 Pod 리스트 확인

✅ 외부에서 접속해보기 (포트포워딩)
kubectl port-forward pod/sample-pod 8000:80
- localhost:8000 → Pod 안의 Nginx 80포트로 연결된다


✅ Pod 상세 정보 보기
kubectl describe pod sample-pod
- 이벤트, IP, 상태 등 Pod 내부 상태를 자세히 확인할 수 있다

'IT > Cloud & DevOps' 카테고리의 다른 글
| Kubernetes의 Node와 Pod, Pod의 리소스 설정 (Request, Limit) (0) | 2025.04.24 |
|---|---|
| ReplicaSet : 정해진 수의 Pod을 유지시켜주는 관리자 (0) | 2025.04.21 |
| 컨테이너 레지스트리란? GCP Artifact Registry 로 실습해보기 (0) | 2025.04.20 |
| 클라우드 환경에서 쿠버네티스 클러스터 만들기 (0) | 2025.04.19 |
| 도커 이미지 만들어 보기 (0) | 2025.04.19 |