1. 주요 목적

 1.1. 호스트 디렉토리 공유

  • 호스트 머신의 /data 디렉토리를 Pod 내 두 컨테이너에 마운트하여 데이터 공유
  • Nginx 컨테이너와 Alpine 컨테이너가 각각 /host-pass와 /host-alpine 경로를 통해 접근

 1.2. 컨테이너 구성

  • n1 (Nginx)
    • 웹 서버 실행.
    • /host-pass 경로에서 호스트 디렉토리(/data) 데이터 접근 가능
  • a1 (Alpine)
    • /home 디렉토리의 파일을 지속적으로 모니터링(tail 명령어)
    • /host-alpine 경로에서 호스트 디렉토리(/data) 데이터 접근 가능

2. 활용 목적

  • 데이터 공유 : 호스트 머신의 데이터를 Pod 내에서 컨테이너들이 실시간으로 접근하거나 수정할 수 있도록 지원
  • 로그 모니터링 및 협업 : 하나의 컨테이너가 데이터를 모니터링하고, 다른 컨테이너가 데이터를 제공하거나 활용할 수 있는 환경 구축

3. 세부 방법 

 3.1. Master PC 

  step1) 디렉토리 만들기 : mkdir /data

  step2) 텍스트 파일 만들기 : touch /data/master.txt

 3.2. Node1 PC 

  step1) 디렉토리 만들기 : mkdir /data

  step2) 텍스트 파일 만들기 : touch /data/node1.txt

 3.3. Node2 PC 

  step1) 디렉토리 만들기 : mkdir /data

  step2) 텍스트 파일 만들기 : touch /data/node2.txt

 3.4. Node3 PC 

  step1) 디렉토리 만들기 : mkdir /data

  step2) 텍스트 파일 만들기 : touch /data/node3.txt

 3.5. Master PC

  step1) Node2 PC yml 파일 만들기 : vi hostpod.yml

apiVersion: v1
kind: Pod
metadata:
  name: host-pod
  labels:
    host: pod
spec:
  containers:
  - name: n1
    image: nginx
    imagePullPolicy: Never
    ports:
    - containerPort: 80
    volumeMounts:
    - mountPath: /host-nginx
      name: behwang-host
  - name: a1
    image: alpine
    imagePullPolicy: Never
    command: [ "tail", "-F", "/home" ]
    volumeMounts:
    - mountPath: /host-alpine
      name: behwang-host
  volumes:
  - name: behwang-host
    hostPath:
      path: /data
      type: Directory


  step2) yml 파일 실행 :  kubectl apply -f hostpod.yml

  step3) /host-nginx 경로 내 파일 확인 : kubectl exec -it host-pod -- ls -al /host-nginx


  step4) /host-alpine 경로 내 파일 확인 : kubectl exec -it host-pod -c a1 -- ls -al /host-alpine 

 

+ Recent posts

# 드래그 금지