Devops
Kubernetes 개념 정리 2 - Pod
cloud/devops/opensource 관심 많은 곰
2025. 5. 8. 16:30
반응형
Pod란 무엇인가
- Pod는 하나 이상의 container를 감싸는 논리적 단위로, 동일한 network와 volume을 공유하며 Kubernetes에서 배포되고 관리되는 최소 단위이다.
1. Pod 특징
- Pod의 IP는 Pod가 생성 될때 자동으로 할당되고, Pod가 삭제 될 경우 자동으로 Ip가 변경 된다.
- Pod의 Ip는 Cluster 내부에서만 연결이 가능하며, 외부에 통신을 하려고 하면 Service를 통하여 연결하여 통신이 가능하다.
- Pod 내부에 여러개의 container가 생성 가능하며 하나의 container별로 App이 실행 되며 pod내부의 container 끼리 통신은 내부 port를 지정해서 가능하다.
2. Pod 구성요소
| 컨테이너 | 실제 애플리케이션이 실행되는 단위 (보통 Docker) |
| 네트워크(IP) | Pod 안의 모든 컨테이너는 같은 IP, 포트 공간 공유 |
| 볼륨(Volume) | Pod 안의 컨테이너들이 공유하는 스토리지 공간 |
| YAML 정의 파일 | Pod를 선언적으로 정의함 (e.g. pod.yaml) |
3. Pod의 수명 주기
- Pending : 스케줄러가 node를 검색 중 인 상태
- Running : container가 정상적으로 생성된 상태
- CrashLoopBackOff : pod가 특정 error로 인하여 반복적으로 재시작 하는 상태
- Succeded / Faild : pod가 종료된 상태
4. Pod 생성 Yaml 예제
| apiVersion: v1 kind: Pod metadata: name: k8s-test-pod spec: containers: - name: k8s-test-pod-nginx image: nginx ports: - containerPort: 80 |
Pod와 label의 관계
Label이란 Key-value 형식의 메타데이터로 한개의 Pod에 여러개의 Lable을 부착 할 수있으며, Pod뿐만 아니라 모든 리소스에 Label 생성이 가능하며, 사용하는 이유는 Label을 생성한 리소스에 정보를 주기 위하여 지정하여 생성하며, 리소스 연결을 하기위한 용도로 사용 된다.
1. Pod label 부착 예시
| apiVersion: v1 kind: Pod metadata: name: k8s-test-pod labels: app: nginx spec: containers: - name: k8s-test-pod-nginx image: nginx ports: - containerPort: 80 |
Service의 경우 다음 페이지에서 설명하여 pod ,label , service가 연동 되는것을 설명할 예정이다.
반응형