🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

인프런 워밍업 스터디 클럽 4기 데브옵스 - 미션4(PVC/PV, Deployment 등)

인프런 워밍업 스터디 클럽 4기 데브옵스 - 미션4(PVC/PV, Deployment 등)

Application 기능으로 이해하기 - PVC/PV, Deployment, Service, HPA [미션4]

 

PVC / PV 실습

1-1. local 및 hostPath 설정 실습

 

Step 1~4. local PV 동작 확인

  • create-file-pod, create-file-pv API 호출로 파일 생성

  • Pod 내 경로 확인:

    kubectl exec -n anotherclass-123 -it <pod> -- ls /usr/src/myapp/tmp
    kubectl exec -n anotherclass-123 -it <pod> -- ls /usr/src/myapp/files/dev
    
  • Master 노드에 실제 저장:

    ls /root/k8s-local-volume/1231
  • Pod 삭제 후에도 /files/dev 경로의 데이터는 유지됨

  • list-file-pod, list-file-pv API로 확인

 

Step 5. hostPath로 수정 후 재확인

  • PVC 설정 제거

  • hostPath 설정:

    volumes:
      - name: files
        hostPath:
          path: /root/k8s-local-volume/1231
    
  • 다시 1~4단계 반복 → 동일하게 파일 유지 및 공유 확인

 


 

Deployment 실습

2-1. RollingUpdate

  • HPA minReplica를 2로 설정하거나 직접 scale:

    kubectl patch -n anotherclass-123 hpa api-tester-1231-default -p '{"spec":{"minReplicas":2}}'
    
  • 이미지 변경으로 롤링 업데이트 실행:

    kubectl set image -n anotherclass-123 deployment/api-tester-1231 api-tester-1231=1pro/api-tester:v2.0.0
    
  • 서비스 중단 없이 버전 순차 업데이트 확인

 

2-2. RollingUpdate 전략 수정

  • maxUnavailable: 0%, maxSurge: 100% 설정으로 무중단 배포 보장

 

2-3. Recreate 전략 실습

  • 전략 변경:

    strategy:
      type: Recreate
    
  • 업데이트 시 전체 Pod가 삭제되었다가 다시 생성됨 → 일시적 서비스 중단 확인

 

2-4. 롤백

kubectl rollout undo -n anotherclass-123 deployment/api-tester-1231
  • 이전 버전으로 손쉽게 복원됨


 

Service 실습

3-1. Service 명으로 내부 API 호출

  • Pod 내부에서 DNS를 통해 호출:

    curl http://api-tester-1231:80/version

 

3-2. Deployment에서 ports 제거, Service의 targetPort 수정

  • containerPort 제거 후에도 호출 정상 작동 확인 → targetPort 명시로 연결 가능


 

HPA 실습

4-1. 부하 발생 → 자동 스케일 확인

  • CPU 부하 API 호출:

    curl "http://192.168.56.30:31231/cpu-load?min=3&thread=5"
  • kubectl top pods로 부하 확인

  • 일정 시간 후 Replica 수 증가 → 자동 스케일 아웃 확인

 

4-2. behavior 미사용 설정 실습

  • behavior 항목 제거하고 부하 재시도 → 즉각적인 반응성과 디폴트 동작 확인

 


 

미션4 소감

Pod가 죽어도 데이터는 살아있고, 서비스 중단 없이 업데이트되고, CPU 부하에 따라 알아서 확장되는 것을 직접 확인하니 쿠버네티스가 왜 필요한지 확실히 와닿았다.

PVC는 데이터 지속성을, Deployment는 무중단 배포를, Service는 안정적인 통신을, HPA는 자동 확장성을 제공한다는 것을 실습으로 체감할 수 있었다.

댓글을 작성해보세요.

채널톡 아이콘