728x90
Pod
- 쿠버네티스의 워크로드 리소스 중에서 가장 작은 기본 구성 단위이다.
- 쿠버네티스에서는 컨테이너 단위로 다루는 도커와 달리 개별 pod 단위로 다룬다. 하나이상의 컨테이너를 포함하는 쿠버네티스의 기본 실행 단위이다.
- pod가 포함하는 컨테이너는 1개일 수도, 여러개일 수도 있다.
- pod가 실행하는 컨테이너가 1개이면 pod와 컨테이너를 비슷하게 생각할 수 있다. 그러나 컨테이너가 여러개 실행될 수도 있으므로 구분해야 한다.
- 네트워크나 Storage에 연결할 때 컨테이너가 아니라, pod 단위와 연결한다. 즉, pod와 연결된 volume storage가 있는 경우 pod 내부의 컨테이너들은 이 공간을 공유해서 사용한다. 네트워크도 동일하게 공유해서 사용한다.
- pod라는 단위는 하나의 노드에서 실행된다.
Pod 의 두가지 사용 방법
- 단일 컨테이너 : pod 내부에 실행되는 컨테이너가 하나인 경우
- 다중 컨테이너 : pod 내부에 실행되는 컨테이너가 N개 인 경우
Manifest File 을 이용하여 Pod object를 생성하기
먼저 manifest file을 작성한다. 보통은 YAML으로 작성하며 JSON도 지원한다.
Manifest File 작성 예시
sudo vim test-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- name: test-pod
image: ghcr.io/c1t1d0s7/go-myweb:alpine
ports:
- containerPort: 8080
protocol: TCP
Manifest file을 지정하여 object 생성하기
$ kubectl create -f MANIFEST_FILE
현재 컨테이너의 pod object의 목록 확인
$ kubectl get pods
- NAME : pod object name
- READY 필드 : pod 오브젝트가 준비된 상태인지 표시한다. 1/1 pod object 내에서 현재 실행 중인 컨테이너의 개수 / 총 컨테이너의 개수 를 나타낸 내용이다.
- STATUS: Running 한개 이상의 컨테이너가 정상적으로 실행되고 있다는 의미
- AGE : pod object가 만들어진 후 얼마나 지났는가 확인
특정 pod object만 지정하여 정보 확인
$ kubectl get pods POD_NAME
get pods 에 출력 방식을 지정하기
i) -o 는 출력 방식을 지정하는 옵션이다. wide 는 더 상세한 정보를 확인할 수 있는 옵션이다.
$ kubectl get pods PODNAME -o wide
ii) pod 오브젝트를 yaml 형식으로 Manifest File 확인하기
$ kubectl get pods PODNAME -o yaml
ii) pod 오브젝트를 JSON 형식으로 확인하기
$ kubectl get pods PODNAME -o json
pod object 상세한 정보 확인하기 : describe
$ kubectl describe pods PODNAME
describe로 출력되는 내용들 중에서, Events 필드에서 kube scheduler 에 의해서 어떤 노드에 pod가 할당되었는지 확인할 수 있다.
이 경우 Node3에 새로 생성한 pod이 할당되었다.
해당 pod 의 로그 정보를 확인
$ kubectl logs PODNAME
728x90
'Cloud Engineering > Kubernetes ⚙️' 카테고리의 다른 글
[Kubernetes] Namespace 생성, 삭제, 확인하기 (0) | 2023.02.09 |
---|---|
[Kubernetes] Annotation 추가하기 (0) | 2023.02.09 |
[Kubernetes] Label 생성과 Label 검색하기 (Selector) (0) | 2023.02.09 |
[Kubernetes] YAML 문법과 Manifest 파일 형식 (0) | 2023.02.09 |
[Kubernetes] 쿠버네티스의 API 종류와 API 확인 명령어 (0) | 2023.02.09 |