korean-docs
시작하기 전에

중요: 시작하기 전에

⚠️

설치하기 전에 반드시 읽어보세요. 처음 사용하는 분들이 거의 다 여기서 걸립니다.

웹 콘솔 로그인

웹 콘솔을 열면 로그인 페이지가 나타납니다.

  • 기본 사용자 이름: admin
  • 기본 비밀번호: waveautoscale

설치가 끝나면 바로 웹 콘솔의 사용자 관리 UI에서 이 값들을 변경하세요.

Wave Sizing

  • Smart Sizing은 워크로드를 10분마다 분석합니다.
  • 새로 설치했다면 권고 사항이 나타나기까지 최소 한 번의 분석 주기를 기다리세요.

Realtime Resizing

Realtime Resizing을 켜기 전에 아래 내용을 확인하세요. 자세한 내용은 Realtime Resizing 문서를 참고하세요.

  • Manifest Patch는 Argo CD의 auto-sync와 충돌합니다. Argo CD는 Wave의 resource patch를 drift로 인식해 몇 분 안에 되돌려버립니다. Manifest Patch가 resource 값을 관리해야 하는 워크로드는 auto-sync를 꺼야 합니다(Autopilot과 동일한 제약입니다. Wave Autoscale 부분의 Using ArgoCD 참고). In-Place 모드는 workload spec을 아예 변경하지 않으므로 Argo CD와 함께 써도 안전합니다.
  • In-Place 모드는 클러스터 지원이 필요합니다. Kubernetes 1.27 미만에서는 사용할 수 없으므로 Manifest 모드를 사용하세요. 1.27~1.32는 베타 단계로 InPlacePodVerticalScaling feature gate가 필요합니다. 1.33 이상은 GA로 기본 활성화되어 있습니다. 콘솔은 런타임에 지원 여부를 감지해서, 클러스터가 지원하지 않으면 In-Place 옵션을 비활성화합니다.
  • In-Place는 manifest를 바꾸는 게 아니라 pod마다 한 번씩 호출하는 방식입니다. Wave는 실행 중인 각 pod에 /resize 요청을 한 번 보냅니다. 요청이 거부되면(대부분 노드 리소스 부족이 원인입니다) Wave는 해당 pod를 축출하거나 rollout하지 않고 건너뛴 다음, 다음 10분 주기에 다시 평가합니다.
  • Autopilot으로 전환하면 Realtime Resizing이 자동으로 해제됩니다. Deployment를 Autopilot 관리로 전환하면 Realtime Resizing은 자동으로 꺼집니다. 이후에는 Autopilot이 resource 결정을 전담하므로, 두 주체가 같은 필드를 두고 충돌하는 일이 없습니다.

Wave Diagnosis

  • 모든 Wave Diagnosis 작업은 10분 주기로 실행됩니다.
    • Cluster Resource Forecast: 예측 결과를 내려면 최소 7일치 메트릭이 필요합니다.
    • PV Capacity Forecast: 볼륨 고갈을 예측하려면 최소 7일치 PV 메트릭이 필요합니다.
    • Memory Leak Detection: 분석을 시작하려면 최소 6시간치 메트릭이 필요합니다.
    • CPU Utilization Analysis
    • Pod Scheduling Delay Detection
    • Idle Node Detection
  • 새로 설치했다면 인사이트가 나오기까지 최소 한 주기를 기다리세요. 예측 기능과 leak detection은 더 오래 걸립니다(위 기능별 설명 참고).

Wave Autoscale (Autopilot)

학습 워밍업

  • Autopilot은 처음에 fallback 모드로 시작합니다. HPA와 비슷한 CPU 공식을 사용합니다.
  • 학습이 끝나면 ML 제어로 전환됩니다.
  • 학습에는 CPU 사용률이 0~60% 범위를 오가는 데이터가 필요합니다. 중요한 건 기간이 아니라 범위입니다. 5%대에서 계속 유휴 상태인 워크로드는 트래픽이 ~60%까지 올라가야 학습이 끝납니다.
  • ML이 활성화되면 콘솔에 워크로드별로 "Model Trained" 배지가 표시됩니다.

Monitoring Mode

  • 신규 워크로드는 먼저 Monitoring Mode로 실행하세요.
  • 콘솔은 CPU 기반(HPA와 동등한 방식) 결정과 ML 기반 결정을 나란히 비교하는 차트를 보여줍니다.
  • 스케일링에는 영향을 주지 않는, 순수 관찰용 모드입니다.
  • 확신이 서면 Autopilot Mode로 전환하세요(아래 요구 사항 참고).

Autopilot Mode

  • 대상 deployment에는 HPA가 없어야 합니다. Wave가 replica 결정을 전담하게 되므로 HPA가 있으면 충돌합니다. Autopilot Mode로 전환하기 전에 HPA를 제거하세요.
  • Monitoring Mode에서는 HPA가 있어도 문제없습니다. 이 요구 사항은 Autopilot Mode로 전환할 때만 적용됩니다.

Using ArgoCD

ArgoCD가 관리하는 값(예: Deployment의 replicas)은 Wave가 업데이트하는 값과 충돌할 수 있습니다. 아래 세 가지 방법 중 하나를 선택하세요.

  1. ArgoCD가 replicas 변경을 무시하도록 설정합니다. Applications Detail → APP DETAILS → MANIFEST 탭 → edit에서 spec.replicas 필드에 대한 ignoreDifferences를 추가하세요. 자세한 내용은 ArgoCD ignoreDifferences 문서 (opens in a new tab)를 참고하세요.
  2. Deployment manifest에서 replicas 필드를 주석 처리합니다. 그러면 Wave가 replicas를 전담하게 되어 ArgoCD가 reconcile할 대상이 없어집니다.
  3. ArgoCD ConfigMap(argocd-cm)에서 설정합니다. resource.customizations.ignoreDifferences 규칙을 클러스터 전체에 적용해서 모든 Application이 spec.replicas를 무시하도록 만드세요. 변경 사항을 적용하려면 ArgoCD pod를 재시작해야 합니다.

다음 단계