Kubernetes
Kubernetes : 컨테이너 간 데이터 공유 (볼륨 활용)
behwang
2024. 12. 24. 14:35
1. 주요 목적
1.1. emptyDir 볼륨을 사용하여 Pod 내의 두 컨테이너(a1과 n1)가 데이터를 공유
- emptyDir 볼륨은 Pod이 생성될 때 초기화되며, 컨테이너 간의 데이터 공유에 사용
1.2. 컨테이너 구성
- a1 (Alpine) : 공유 볼륨을 /test1 경로에 마운트
- n1 (Nginx): 공유 볼륨을 /test2 경로에 마운트
2. 핵심 기능
- 공유 메모리 : Pod 내에서 emptyDir을 통해 컨테이너 간 데이터를 주고 받을 수 있음
- 컨테이너 간 협업 : Alpine 컨테이너에서 생성한 데이터를 Nginx 컨테이너에서 활용 가능
3. 세부 방법
3.1. Master PC
step1) 디렉토리 만들기 : mkdir /vol
step2) 디렉토리 이동 : cd /vol
step3) yml 파일 만들기 : vi pod.yml
apiVersion: v1 kind: Pod metadata: name: vol-pod labels: test: vol spec: containers: - name: a1 image: alpine imagePullPolicy: Never command: [ "tail", "-F", "/home" ] volumeMounts: - mountPath: /test1 name: behwang-vol - name: n1 image: nginx imagePullPolicy: Never ports: - containerPort: 80 volumeMounts: - mountPath: /test2 name: behwang-vol volumes: - name: behwang-vol emptyDir: {} |
step4) yml 파일 실행 : kubectl apply -f pod.yml
3.2. Node2 PC
step1) 볼륨 디렉토리 찾기 : find / -name behwang-vol
step2) 볼륨 디렉토리 이동 : cd [볼륨 디렉토리]
step3) 텍스트 파일 만들기 : touch vol.txt

3.3. Master PC
step1) 디폴트 컨테이너에 쉘 접속 : kubectl exec -it vol-pod -- sh
step2) 생성한 텍스트 파일 확인 : ls /test1
step3) 나가기 : exit

step4) Nginx 컨테이너 쉘 접속 : kubectl exec -it vol-pod -c n1 -- bash
step5) 생성한 텍스트 파일 확인 : ls /test2
step6) 나가기 : exit