Cloud Native/K8s

k8s 실전: 앱 배포 및 스케일링 실전

lys4321 2026. 2. 24. 00:15

kubectl rollout <하위 명령어> <리소스 명>

  • 애플리케이션의 배포(rollout) 과정을 관리하는 명령
  • Pod을 여러 개 관리하는 컨트롤러들의 배포 작업을 관리 시, 사용
  • 관리가 가능한 리소스 종류
    • Deployments
    • DaemonSets
    • StatefulSets
  • 하위명령어 종류
    • history
      • Deployment의 revision 을 보임
    • pause
      • 배포진행을 일시정지
      • 여러 설정을 한 번에 변경 시 사용
    • restart
      • Pod를 전부 재시작하여 새 rollout 생성할 때 사용
      • 실제 template 변경없이 새 ReplicaSet을 생성할 시, 사용
    • resume
      • pause 된 rollout을 다시 진행
    • status
      • rollout의 상태를 출력
      • 성공까지 대기하며 streaming log 스타일로 출력
    • undo
      • 이전 revision으로 되돌림
      • 특정 revision도 가능

kubectl scale <리소스종류> <이름> --replicas=<개수>

  • 리소스의 replica 수를 조정하는 명령어
  • 스케일링이 가능한 리소스(Pod를 여러 개 생성하는 컨트롤러 류)
    • Deployment
    • ReplicaSet
    • ReplicationController
    • StatefulSet
  • 주로 사용되는 옵션
    • --all
    • --current-replicas
      • CI/CD 에서 충돌 방지용으로 사용하는 옵션
      • 현재 replicas 값이 입력된 값과 같은지 확인하는 조건
      • 일치하면 스케일링이 진행되고 불일치하면 에러 반환
    • --resource-version
      • 스케일 대상 오브젝트의 metadata.resourceVersion이 특정 값일 시에만 진행
    • --replicas
      • 필수값이며 개수를 지정한다
    • --dry-run
      • 실행하지 않고 적용이 가능한지 확인 시
    • --timeout
      • 대기시간 초 단위로 설정 시, 사용 해당 시간 지나면 실패로 간주
    • --kustomize
      • kustomization.yaml 파일이 있는 디렉토리를 읽을 시
    • --selector
      • 특정 라벨이 붙은 리소스를 지정 시

kubectl autoscale

  • HPA(HoroizontalPodAutoscaleer)를 생성하는 명령어
  • 파일 지정 시: kubectl autoscale -f <yaml 파일 명> [옵션]
  • 타입 지정 시ㅣ: kubectl autoscale <리소스 타입 명> <리소스 명>
  • 주로 사용되는 옵션
    • --dry-run=client
      • 실행하지 않고 적용이 가능한지 확인 시
    • -k (--kustomize)
      • kustomization.yaml 파일이 있는 디렉토리를 읽을 시
    • -R (--recursive)
      • 지정한 폴더 안의 하위 디렉토리 파일들까지 읽을 시
    • -o (--output)
      • 결과를 yaml로 뽑아서 생성된 리소스의 상세 명세를 확인 시