쿠버네티스에서 상태가 없는(stateless) 앱을 배포할 때 사용하는 가장 기본적인 컨트롤러
파드와 레플리카셋에 대한 업데이트를 선언하는 영역
# 기본 항목
apiVersion: apps/v1 # API 버전, 존재하지 않는 값을 설정하면 오류가 발생
kind: Deployment # 쿠버네티스 리소스의 종류 Deployment, Service 등
metadata:
name: {{PN}}-deployment # Deployment 이름
#namespace: {{NS}} # 어느 Namespace에 띄울지
labels: # 검색할 때 유용하게 쓰이는 key-value
app: {{PN}}-pod
spec:
replicas: 1 # 클러스터 안에서 가동시킬 파드의 수
selector: # 어떤 파드를 가동시킬지에 대한 셀렉터,
matchLabels: # 파드의 Template에 설정된 라벨과 일치해야 한다.
app: {{PN}}-pod
# Pod 정보
template: # 실제로 클러스터 안에서 움직이는 파드의 수가 replicas에 설정된
metadata: # 파드의 수를 만족시키지 않을 때, 새로 작성되는 파드의 템플릿
labels: # 템플릿의 이름이나 Label과 같은 데이터
app: {{PN}}-pod
spec: # 파드의 상세 정보를 설정
containers:
- name: {{PN}}
image: {{REPO}}/{{PN}}:{{VERS}}
ports:
- containerPort: {{PORT}}
참고 : https://velog.io/@tastestar/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-yaml
yaml문법 참고 : https://subicura.com/k8s/prepare/yaml.html#%E1%84%80%E1%85%B5%E1%84%87%E1%85%A9%E1%86%AB%E1%84%86%E1%85%AE%E1%86%AB%E1%84%87%E1%85%A5%E1%86%B8