본문 바로가기

IT Study/Kubernetes

kubernetes pod

kubernetes pod

 

컨테이너를 표현하는 k8s API의 최소단위

pod에는 1개또는 여러개의 컨테이너를 포함시킬수있음

 

 

 

 

kubernetes pod 생성

 

CLI명령어를 통한 생성방법 ( run,create,apply ,dry-run 등등)

yaml을 통한 생성방법

 

 

kubectl cli 명령어를 통한 pod 생성방법.

#kubectl run [파드명] --image=[사용할이미지명]: 버전을적어주지않으면 최신버전으로설치 --port 포트번호

 

yaml을 통한 생성방법

직접 템플릿을 작성할때 리눅스환경의 vi,vim,nano편집기로 작성하는것 보단

vscode로 작성하는게 좋음...들여쓰기,띄어쓰기,대소문자구문 등..

또한

#kubectl run [파드명] --image=[이미지명] --dry-run -o yaml 명령어를 통해 템플릿을 만들어서 안에 내용만 수정해도됨

 

yaml 작성시 필요한 스펙 등을 추가로 작성하여 배포가능..

multi pod(한개의pod안에 두개이상의 컨테이너) 구성시 yaml 템플릿의 spec에 추가작성 

ex)

apiVersion: v1

kind: Pod

metadata:

     name: multipod

spec:

    containers:

    - name: testpod2

      image: nginx

    - name : testpod3

      image: centos:7

   

-> multipod 라는 pod안에 testpod2,testpod3 두개의 컨테이너를 구성할수있음.

 

#kubectl create -f 명령어를 통하여 yaml 배포

 

kubernetes pod 관리 및 삭제

 

kubectl 명령어로 pod를 관리할 수 있다.

 

1.#kubectl get pod[파드명]

->배포되어있는 파드를 확인

 

2.kubectl get pod [파드명]  -o -wide or yaml or json

->wide하게 파드상태 확인

->yaml형태로 파드상태확인

->json형태로 파드상태확인

 

3.kubectl describe pod [파드명]

->상세하게 파드상태확인

 

4.kubectl delete pod [파드명]

-> 파드삭제

 

5.kubectl loogs [파드명]

->파드로그 확인 , multipod 로그의경우 보고자하는 컨테이너명을 넣어줘야함.

 

6.kubectl edit pod [파드명]

->파드내용 수정

kubernetes pod Lifecycle & status

파드는 생성부터 삭제까지 생명주기가 있다

 

#kubectl get pod [파드명] -o wide --watch

-> 해당명령어로 파드의 생성부터 동작까지 상태를 전체적으로 확인할수있음.

 

 

 

pending

-> kubectl 로 파드생성명령시 컨테이너 이미지를 다운로드후 전체컨테이너를 실행하는과정중

 

running

-> 파드안의 모든컨테이너가 실행중인 상태 , 시작,중지,재시작등

 

succeeded

->파드안의 모든컨테이너가 정상종료된 상태 재시작되지않음

 

failed

->파드안의 모든컨테이너가 정상적으로 실행,종료되지 않은상태  에러코드로 표현 

 

unknown

->파드가 적재되어있는 노드와 통신을 할수없는 상태 또는 파드상태를 확인할수없음

 

terminating

->파드의 종료,삭제상태

 

 

Pod Status

파드의 상태확인은 kubectl describe pod [파드명]으로 자세한 상태를 확인할수 있음.

 

Conditinos 탭 확인시 pod의 status를 확인할수있음

Type : status로 구분되어있음

Type의 상태는 True(활성화) , False(비활성화),Unknown(미확인) 값으로 출력됨

 

Type의 정보

●initialized

->성공적으로 동작완료됨

 

●ready

->파드는 요청을 수행할 수 있고 연결된 모든서비스의 로드밸런싱풀에 추가되어야한다는 뜻?

 

●containersReady

->파드안의 컨테이너가 준비상태

 

●podscheduled

->파드가 하나의 node로 스케줄링 완료상태

 

●unscheduled

->스케줄러가 자원부족이나 다른제약등으로 파드를 스케줄링 할수없음

'IT Study > Kubernetes' 카테고리의 다른 글

kubernetes init container  (0) 2023.01.11
kubernetes Probe? self-healing  (0) 2023.01.11
kubernetes yaml  (0) 2023.01.06
kubernetes namespace  (0) 2023.01.05
kubernetes ? 쿠버네티스?  (0) 2023.01.04