728x90
kubernetes에서 object란 spec과 status 등의 값을 포함한 파드, 디플로이먼트 등을 부르는 단위이다.
Deployment
- 파드에 기반을 두고 있으며, 레플리카셋 오브젝트를 합친 상태
- API 서버와 컨트롤러 매니저는 단순히 파드가 생성되는 것을 감시하는 것이 아니라 디플로이먼트처럼 레플리카셋을 포함하는 오브젝트의 생성 감시
[root@m-k8s ~]# kubectl create deployment dpy-hname --image=sysnet4admin/echo-hname
deployment.apps/dpy-hname created
[root@m-k8s ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
dpy-hname-59778b9bb-7kcz4 1/1 Running 0 48s
[root@m-k8s ~]# kubectl delete deployment dpy-hname
deployment.apps "dpy-hname" deleted
[root@m-k8s ~]# kubectl get pod
No resources found in default namespace.
- dpy-hname을 이름으로, sysnet4admin/echo-hname 이미지를 사용하는 deployment를 생성한다.
- pod를 확인하여 생성된 디플로이먼트를 확인한다.
- deployment를 삭제한다.
- pod도 함께 삭제되었다.
Replicaset
replicaset으로 파드 수의 원하는 상태를 선언할 수 있다.
레플리카셋은 파드 수를 보장하는 기능만 제공하므로 롤링 업데이트 기능 등이 추가된 디플로이먼트를 사용해 파드 수를 관리하기를 권장한다.
[root@m-k8s ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
dpy-nginx-c8d778df-sv6l2 1/1 Running 0 2m1s
nginx-pod 1/1 Running 0 2m57s
[root@m-k8s ~]# kubectl scale pod nginx-pod --replicas=3
Error from server (NotFound): the server could not find the requested resource
[root@m-k8s ~]# kubectl scale deployment dpy-nginx --replicas=3
deployment.apps/dpy-nginx scaled
[root@m-k8s ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
dpy-nginx-c8d778df-qndlg 1/1 Running 0 24s 172.16.103.130 w2-k8s <none> <none>
dpy-nginx-c8d778df-sv6l2 1/1 Running 0 4m51s 172.16.132.6 w3-k8s <none> <none>
dpy-nginx-c8d778df-z9nlg 1/1 Running 0 24s 172.16.221.129 w1-k8s <none> <none>
nginx-pod 1/1 Running 0 5m47s 172.16.103.129 w2-k8s <none> <none>
[root@m-k8s ~]# kubectl delete deployment dpy-nginx
deployment.apps "dpy-nginx" deleted
[root@m-k8s ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 6m36s
- dpy-nginx는 deployment를 사용하여, nginx-pod는 run 명령으로 단일 파드 생성하였다.
- nginx-pod는 단일 파드로 생성됐기 때문에 디플로이먼트 오브젝트의 관리 대상이 아니다. 그래서 리소스를 확인할 수 없다는 에러가 발생한다.
- 디플로이먼트의 replicas 속성을 3으로 주면 해당 디플로이에서 관리하는 파드의 갯수가 3개로 늘어난 것을 확인할 수 있다.
- 디플로이를 삭제하면 해당 디플로이에서 관리하는 파드도 함께 모두 삭제된다.
728x90