Fullstack-Study-241204-250625

커리큘럼(12-30/변경)

01. Java
02. git
03. Database 
04. Jsp [Server]

05. HTML,CSS 
07. JS
06. 미니프로젝트-2W

08. SpringFramework , SrpingBoot 
19. 중간프로젝트 (1M)
10. Linux 명령어
11. AWS
12. Docker
13. Kubernetes(v)
14. React JS 
15. App - Android
16. 최종프로젝트 (1M)

쿠버네티스

퍼시스턴트 볼륨(Persistent Volume(PV))

퍼시스턴트볼륨

  • 개발과 테스트환경에서는 hostPath를 사용하지만, 운영단계에서는 변경됨
  • hostPath쿠버네티스 노드(서버)의 로컬 파일 시스템에 접근할 수 있게 해줌
  • 하지만, hosPath는 본인의 노드(컴퓨터)에 종속되기 때문에 다른 노드(컴퓨터)에서는 접근이 불가능하고 클러스터가 전환되면 데이터가 유지되지 않음
apiVersion: apps/v1 # 큐에 대한 롤링배포
kind: Deployment 
metadata:
  name: postgres
spec:
  selector:
    matchLabels:
      app: postgres

  replicas: 1 # 몇 개의 Pod 인스턴스를 유지할지
  template: # Pod의 템플릿을 정의
    metadata: 
      labels: 
        app: postgres

    spec:
      containers:
      - name: postgres
        image: postgres:14 # 포스트그레 공식 도커 이미지
        env:
        - name: POSTGRES_USER  # 초기슈퍼사용자 유저명
          value: "postgres"
        - name: POSTGRES_PASSWORD  # 비밀번호
          value: "1234"
        - name: POSTGRES_DB  # 기본 데이터베이스 이름
          value: "postgres"
        - name: PGDATA  # 데이터 저장 경로 (선택적)
          value: "/var/lib/postgresql/data/pgdata"
        
        volumeMounts:
          - name: postgres-persistent-storage # 마운트할 볼륨이름
            mountPath: /var/lib/postgresql/data # DB컨테이너가 데이터 저장시 사용하는 폴더명


      volumes:
      - name: postgres-persistent-storage
        hostPath: # 호스트머신에 물리적 경로를 만듬
          path: /mnt/some/mydata # 물리적경로
          type: DirectoryOrCreate # path에 디렉토리가 없으면 자동 생성

PersistentVolume (PV)

PersistentVolumeClaim (PVC)