개발/Infra

(인강복습) 쿠버네티스 어나더 클래스 Sprint 1 - Application 기능으로 이해하기 - PV, PVC, Deployment, Service, HPA

희묭 2025. 4. 10. 15:16

스토리지를 로컬로 사용하기때문에 스토리지관련은 다음기회에

  1. PV/PVC
    1. resource, accessModes : 둘다 같은 내용이여야함
    2. PV 의 local 을 쓰면 필수로 nodeAffinity 가 들어감, 어느 Node에 파드를 생성할것인지
    3. hostPath를 써서 nodeSelector 로 지정해도된다, 단 가능하면 사용하지 않는게 좋다 왜냐하면 노드의 정보를 App에서 조회할 일이 있을경우가 사용처라서 운영에서는 비추천
    4. 노드의 저장공간은 한정되있음
    5. 파드, PVC를 만드는 주체는 개발자, PV는 인프라의 영역으로 구분
  2. Deployment
    1. strategy
      1. recreate : 모두삭제후 새로운 파드만듬, 서비스중단이 발생
      2. RollingUpdate : 새버전파드를 먼저만들고 기동완료되면 기존파드 하나씩 삭제함
        1. maxUnavailable : 업데이트동안 최대 몇개파드를 서비스상태로 유지할지
        2. maxSurge : 새파드를 최대 몇개까지 동시에 만들건지
    2. template 중 하나만 변경되면 업데이트됨
    3. 업데이트가 되도 ReplicaSet은 그대로 놔둠 (rollback을 위해)
  3. Service
    1. 서비스퍼블리싱
      1. NodePort : 내부포트와 외부포트 연결
      2. ClusterIp : 오직 쿠버내부에서 파드끼리 접근하는 용도 (IP가 아닌 서비스이름.네임스페이스:80 으로 접근)
    2. 서비스레지스트리
  4. HPA
    1. averageUtitlzation : 현재POD수 * 평균CPU/HPACPU → 변경될 POD수
    2. 메모리는 사실상 쓸일 없음
    3. 자동스케일링은 보조적인 역활로 생각
    4. behavior : 잦은 스케일링 방지
      1. scaleUp.stabilzationWindowSeconds : 120 > 2분동안 60%이상 유지시 스케일아웃
      2. scaleDown.stabilzationWindowSeconds : 120 > 부하감소해도 10분동안 스케일인