💡 예를 들어 문제에서 주는 애플리케이션 파일이 /var/log/skills.log로 Pod에 log가 저장된다고 했을 때 Deployment.yaml 파일을 아래와 같이 구성해야합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: front-deployment
namespace: wsi-skills-namespace
labels:
app: front-deployment
spec:
replicas: 2
selector:
matchLabels:
app: front-deployment
template:
metadata:
labels:
app: front-deployment
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: worker1 #Node Key
operator: In
values:
- front #Node Value
containers:
- name: helloct
image: ACCOUNT_ID.dkr.ecr.ap-northeast-2.amazonaws.com/wsi-ecr-repo:latest
ports:
- containerPort: 80
//VolumeMount 부분이 중요합니다
volumeMounts:
- name: logs
mountPath: /var/log/
volumes:
- name: logs
hostPath:
path: /var/log/ #Host 디렉터리 위치
type: Directory
Directory | 주어진 경로에 디렉터리가 있어야 함 |
---|---|
File | 주어진 경로에 파일이 있어야 함 |
Socket | 주어진 경로에 UNIX 소캣이 있어야 함 |
CharDevice | 주어진 경로에 문자 디바이스가 있어야 함 |
DirectoryOrCreate | 만약 주어진 경로에 아무것도 없다면, 필요에 따라 Kubelet이 가지고 있는 동일한 그룹과 소유권, 권한을 0755로 설정한 빈 디렉터리를 생성한다. |
CharDevice | 주어진 경로에 문자 디바이스가 있어야 함 |
BlockDevice | 주어진 경로에 블록 디바이스가 있어야 함 |
없음 | 빈 문자열 (기본값)은 이전 버전과의 호환성을 위한 것으로, hostPath 볼륨은 마운트 하기 전에 아무런 검사도 수행되지 않는다. |