쿠버네티스 교육/강의 내용 정리

220621_1_k8s_파드_개념, 기본 템플릿 사용

kimhope 2022. 6. 21. 14:38
728x90

파드


파드 개념

파드란

  • 쿠버네티스의 기본 구성 요소
  • 쿠버네티스의 객체 모델 중에서 생성 및 배포가 가능한 가장 작은 단위
  • 쿠버네티스 클러스터 내에서 애플리케이션을 배포하며 동작하는 프로세스
  • 파드는 컨테이너이며, 한 개 이상의 컨테이너들로 구성됨

 

파드 리소스의 주요 필드

항목 설명
.spec.containers 컨테이너 정의
.spec.containers.image 컨테이너에 사용할 이미지
.spec.containers.name 컨테이너 이름
.spec.containers.ports 노출할 포트 정의
.spec.containers.ports.containerPort 노출할 컨테이너 포트번호
.spec.containers.ports.protocol 노출할 컨테이너 포트의 프로토콜(default: TCP)

 


 

기본 템플릿 사용


yml 파일을 이용한 파드 생성

하나의 컨테이너를 생성하는 템플릿 구성

  • testapp-pod.yml 파일 생성
  • apiVersion: API 버전
  • kind: 생성할 오브젝트 종류
  • metadata.name: 파드 오브젝트의 이름
  • spec.containers.name: 컨테이너 이름
  • spec.containers.image: 컨테이너에 사용할 이미지
  • spec.containers.ports.containerPort, protocol: 노출할 컨테이너 포트, 프로토콜
vagrant@kube-master1:~/test$ vi testapp-pod.yml

apiVersion: v1
kind: Pod
metadata:
  name: testapp-pod
spec:
  containers:
  - name: testapp
    image: c1t1d0s7/myweb
    ports:
    - containerPort: 8080
      protocol: TCP

 

  • 파드 생성
vagrant@kube-master1:~/test$ kubectl create -f testapp-pod.yml
pod/testapp-pod created

 

  • 실행 중인 파드 정의 확인
  • kubectl get pods 파드명 -o yaml
  • kubectl get pods 파드명 -o json
vagrant@kube-master1:~/test$ kubectl get pods
NAME          READY   STATUS    RESTARTS   AGE
testapp-pod   1/1     Running   0          45s

vagrant@kube-master1:~/test$ kubectl get pods -o wide
NAME          READY   STATUS    RESTARTS   AGE    IP             NODE         NOMINATED NODE   READINESS GATES
testapp-pod   1/1     Running   0          3m9s   10.233.101.7   kube-node1   <none>           <none>

vagrant@kube-master1:~/test$ curl 10.233.101.7:8080
Message: Hello World!
Hostname: testapp-pod
Platform: linux
Uptime: 2134
IP: 10.233.101.7
DNS: 169.254.25.10

 

  • 파드의 자세한 정보 확인
vagrant@kube-master1:~/test$ kubectl describe pods testapp-pod | less

 

  • 파드 로그 확인
vagrant@kube-master1:~/test$ kubectl logs testapp-pod

Tue Jun 21 2022 02:39:58 GMT+0000 (Coordinated Universal Time)
...Start My Node.js Application...
Tue Jun 21 2022 02:43:17 GMT+0000 (Coordinated Universal Time)
Received Request From ::ffff:10.233.89.0

 

728x90