티스토리 뷰

Pod란?
...
  • 쿠버네티스에서 가장 작은 배포 단위
  • 하나 이상의 컨테이너(Container)를 포함
  • 컨테이너들은 같은 네트워크 네임스페이스, 볼륨, 환경 변수를 공유
  • Pod는 단일 IP를 가지고, 그 안 컨테이너들은 서로 localhost 로 통신 가능

e.g. my-httpd-7547bdb59f-s5mnv Pod 안에는 httpd 컨테이너 1개가 있고, 

IP는 10.244.2.3Pod 안 컨테이너는 localhost:80 로 httpd 접근 가능

Pod 밖에서 직접 접근하려면 IP(10.xxx.xx.x) 사용해야 함, 단 내부 네트워크에서만 가능

 

 

 

Pod 생성하기 (Create, Apply 명령어)
...
  • 파드는 create 또는 apply 명령어를 사용해 생성한다.
  • kubectl create: 클러스터에 새로운 리소스를 생성한다.
  • kubectl apply: create와 replace(생성된 오브젝트를 삭제하고 새로운 오브젝트를 생성) 의 혼합이다.
 

 

e.g.

1개의 Pod를 가진 Deployment를 만들고, Pod 안에서 httpd 컨테이너가 80번 포트를 열도록 설정
Deployment는 Pod를 관리하고, Pod가 죽으면 자동으로 재생성.,

# kubectl create deployment [deployment name] --image=[컨테이너 이미지] --replicas=[생성 pod수] --port=[컨테이너 노출포트]
# create deployment
# Deployment 리소스 생성 명령어
# Deployment는 Pod를 관리하고, 지정한 수의 복제본(replicas) 유지
# Pod가 죽으면 자동으로 다시 생성해주는 역할
$ kubectl create deployment my-httpd --image=httpd --replicas=1 --port=80

$ kubectl get deployment

$ kubectl get pod

$ kubectl get pod -o wide

 

 

 

 

 

 

 

 

 

 

 

 

Pod 삭제하기
...
$ kubectl delete deployment my-httpd
$ kubectl create deployment my-httpd --image=httpd --replicas=1 --port=80
$ kubectl edit deployment my-httpd