nginx 웹서버 파드를 생성하는 방법
kubectl run nginx-pod --image=nginx
kubectl create deployment dpy-nginx --image=nginx
run으로 파드를 생성하면 단일 파드 1개만 생성되고 관리된다. 그리고 create deployment로 파드를 생성하면 디플로이먼트라는 관리 그룹 내에서 파드가 생성된다. 비유를 들자면, run으로 생성된 파드는 초코파이 1개이고, create deployment로 생성된 파드는 초코파이 상자에 들어 있는 초코파이 1개이다
쿠버네티스를 사용하는 관점에서 파드와 디플로이먼트는 스펙과 상태등의 값을 가지고 있다. 이러한 값을 가지고 있는 파드와 디플로이먼트를 개별 속성을 포함해 부르는 단위를 오브젝트라고 한다.
쿠버네티스에서 가장 많이 쓰이는 디플로이먼트 오브젝트는 파드에 기반을 두고 있으며, 레플리카셋 오브젝트를 합쳐 놓은 형태이다.
kubectl scale pod nginx-pod --replicas=3
디플로이먼트를 생성하면서 한꺼번에 여러 개의 파드를 만들수는 없을까? create에서는 replicas 옵션을 사용할 수 없고, scale은 이미 만들어진 디플로이먼트에서만 사용할 수 있다. 이런 설정을 적용하려면 필요한 내용을 파일로 작성해야 한다. 이때 작성하는 파일을 오브젝트 스펙이라고 한다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo-hname
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: echo-hname
image: sysnet4admin/echo-hname
run으로는 단일 파드만 생성 할 수 있고 create로 디플로이먼트를 생성하면 파일의 변경 사항을 바로 적용할 수 없다. 이런 경우에 apply를 사용한다. 일회성으로 사용하는 경우 create사용하고 그 외의 경우 apply 사용