apiVersion: apps/v1 # kubernetes resource 의 API Version
kind: Deployment # kubernetes resource name
metadata: # 메타데이터 : name, namespace, labels, annotations 등을 포함
name: nginx-deployment
labels:
app: nginx
spec: # 메인 파트 : resource 의 desired state 를 명시
replicas: 3 # 동일한 template 의 pod 을 3 개 복제본으로 생성합니다.
selector:
matchLabels:
app: nginx
template: # Pod 의 template 을 의미합니다.
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx # container 의 이름
image: nginx:1.14.2 # container 의 image
ports:
- containerPort: 80 # container 의 내부 Port
vi deployment.yaml
# 위의 내용을 복사 후 붙여넣습니다.
kubectl apply -f deployment.yaml
kubectl get deployment
# 다음과 같은 메시지가 출력됩니다.
# NAME READY UP-TO-DATE AVAILABLE AGE
# nginx-deployment 0/3 3 0 10s
kubectl get deployment,pod
kubectl describe pod <pod-name>
Controlled By
로부터 Deployment 에 의해 생성되고 관리되고 있는 것을 확인할 수 있습니다.kubectl delete pod <pod-name>
kubectl get pod
kubectl scale deployment/nginx-deployment --replicas=5
kubectl get deployment
kubectl get pod
kubectl scale deployment/nginx-deployment --replicas=1
kubectl get deployment
kubectl get pod
kubectl delete deployment <deployment-name>
kubectl get deployment
kubectl get pod
-f
옵션으로 YAML 파일을 사용해서 삭제할 수도 있습니다.kubectl delete -f <YAML-파일-경로>