1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4298],{75746:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/docs/wave-diagnosis/pod-scheduling-delay",function(){return a(74992)}])},74992:function(e,t,a){"use strict";a.r(t),a.d(t,{__toc:function(){return d}});var i=a(85893),n=a(4882),o=a(1603),r=a(84943);a(29488);var s=a(82643),l=a(52154);let d=[{depth:2,value:"The Scheduling Delays page",id:"the-scheduling-delays-page"},{depth:2,value:"Expandable row details",id:"expandable-row-details"},{depth:2,value:"Common Scheduling Failure Reasons",id:"common-scheduling-failure-reasons"},{depth:2,value:"Related",id:"related"}];function c(e){let t=Object.assign({h1:"h1",p:"p",strong:"strong",h2:"h2",ul:"ul",li:"li",ol:"ol",code:"code",pre:"pre",span:"span",a:"a"},(0,s.a)(),e.components);return l.mQ||u("Tabs",!1),l.mQ.Tab||u("Tabs.Tab",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{children:"Pod Scheduling Delay Detection"}),"\n",(0,i.jsxs)(t.p,{children:["A pod that sits in ",(0,i.jsx)(t.strong,{children:"Pending"})," is a deployment that has not happened yet. ",(0,i.jsx)(t.strong,{children:"Pod Scheduling Delay Detection"})," tracks every pod that waited longer than expected to schedule, how long it waited, and the exact scheduler conditions behind it, so you can tell a genuine capacity shortage from a misconfigured pod spec without reading raw events. It works per workload, in real time, and needs no warm-up period."]}),"\n",(0,i.jsxs)(t.p,{children:["Open it under ",(0,i.jsx)(t.strong,{children:"Wave Diagnosis"})," in the sidebar, then ",(0,i.jsx)(t.strong,{children:"Scheduling Delays"}),". The cluster selector and date-range picker (the last seven days by default) scope the chart and table; the finding banner and KPI cards summarize the last 24 hours."]}),"\n",(0,i.jsx)(t.h2,{id:"the-scheduling-delays-page",children:"The Scheduling Delays page"}),"\n",(0,i.jsx)("img",{className:"mx-auto rounded-lg shadow-md",src:"/docs/wave-diagnosis/pod-scheduling-delay-overview.png",alt:"Scheduling Delays page with the finding banner, KPI cards, Average Pending Time by Hour chart, and the delays table"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Finding banner."}),' A one-line answer to "Why are pods stuck pending?" with how many pods waited, and for how long, in the last 24 hours.']}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"KPI cards."})," Four numbers give the shape of the problem at a glance:"]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Total Delays"}),": pods that experienced a scheduling delay in range."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Average Delay Time"}),": mean time spent in Pending before scheduling or deletion."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Resolved Count"}),": delays that cleared (the pod eventually scheduled)."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Unresolved Count"}),": delays still pending. A rising number here means active, ongoing scheduling problems."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Average Pending Time by Hour."})," An hourly area chart of mean pending time across the selected range. Use it to spot when delays cluster, for example around deploy windows or peak hours, and to confirm that a fix actually moved the line."]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Delays table."})," One row per delayed pod, sortable and filterable: ",(0,i.jsx)(t.strong,{children:"Pod Creation Time"}),", ",(0,i.jsx)(t.strong,{children:"Scheduling Delay"}),", ",(0,i.jsx)(t.strong,{children:"Workload Type"}),", ",(0,i.jsx)(t.strong,{children:"Namespace"}),", ",(0,i.jsx)(t.strong,{children:"Workload Name"}),", ",(0,i.jsx)(t.strong,{children:"Pod Name"}),", ",(0,i.jsx)(t.strong,{children:"Current Status"})," (Resolved or Pending), ",(0,i.jsx)(t.strong,{children:"Latest Pod Condition"}),", and ",(0,i.jsx)(t.strong,{children:"Volume Issues"}),". Filter by workload type, namespace, workload name, or status to isolate one problem."]}
1),"\n",(0,i.jsx)(t.h2,{id:"expandable-row-details",children:"Expandable row details"}),"\n",(0,i.jsxs)(t.p,{children:["Click the ",(0,i.jsx)(t.strong,{children:"+"})," on any row to expand the full diagnosis for that pod."]}),"\n",(0,i.jsx)("img",{className:"mx-auto rounded-lg shadow-md",src:"/docs/wave-diagnosis/pod_scheduling_table_expanded.jpg",alt:"Expanded scheduling-delay row showing conditions history, volume binding history, and timestamps"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Conditions history"})," lists every scheduler condition in chronological order, each with a timestamp, a color-coded badge (type, reason, status), and the scheduler's own message, for example ",(0,i.jsx)(t.code,{children:"0/5 nodes are available: 2 Insufficient cpu, 3 node(s) had taint that the pod did not tolerate"}),". Reading it top to bottom shows how the delay evolved."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Volume binding history"})," appears only for pods that use PersistentVolumeClaims. For each pending PVC it shows the name and namespace, the binding ",(0,i.jsx)(t.strong,{children:"phase"}),", the requested ",(0,i.jsx)(t.strong,{children:"storage"})," and class, and the ",(0,i.jsx)(t.strong,{children:"binding failure reason"})," (for example, no available volumes or a zone mismatch)."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Timestamps"})," summarize the pod creation time, the last detection time, and when the delay resolved."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"common-scheduling-failure-reasons",children:"Common Scheduling Failure Reasons"}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.strong,{children:"Latest Pod Condition"})," column and the conditions history surface the scheduler's own reason. Match it against the family below and apply the fix."]}),"\n",(0,i.jsxs)(l.mQ,{items:["Insufficient Resources","Affinity/Anti-Affinity","Volume Binding","Taints/Tolerations","Other"],children:[(0,i.jsxs)(l.mQ.Tab,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Condition messages"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"PodExceedsFreeCPU"})," / ",(0,i.jsx)(t.code,{children:"PodExceedsFreeMemory"})]}),"\n",(0,i.jsx)(t.li,{children:'"Insufficient CPU" or "Insufficient memory"'}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Root causes"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"No node has enough free CPU or memory to satisfy the pod's resource requests"}),"\n",(0,i.jsx)(t.li,{children:"Pod count limit reached (max pods per node)"}),"\n",(0,i.jsx)(t.li,{children:"Cluster at capacity during peak usage"}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Quick fixes"})}),(0,i.jsx)(t.p,{children:"Emergency (immediate):"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.code,{"data-language":"bash","data-theme":"default",children:[(0,i.jsx)(t.span,{className:"line",children:(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-comment)"},children:"# Delete unused pods to free resources"})}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"delete"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pod"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"unused-po"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"d"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-n"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"namespac"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"})]}),"\n",(0,i.jsx)(t.span,{className:"line",children:" "}),"\n",(0,i.jsx)(t.span,{className:"line",children:(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-comment)"},children:"# Reduce resource requests temporarily"})}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"set"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"resources"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"deployment"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-c="}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"container"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"--requests=cpu=500m,memory=512Mi"})]})]})}),(0,i.jsx)(t.p,{children:"Sustainable (long-term):"}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Add more nodes to the cluster via your cloud provider"}),"\n",(0,i.jsx)(t.li,{children:"Enable Cluster Autoscaler for automatic node provisioning"}),"\n",(0,i.jsxs)(t.li,{children:["Use ",(0,i.jsx)(t.a,{href:"/docs/wave-sizing/overview",children:"Smart Sizing"})," to optimize resource requests"]}),"\n",(0,i.jsxs)(t.li,{children:["Review the ",(0,i.jsx)(t.a,{href:"/docs/wave-sizing/dashboard",children:"Sizing Console"})," for cluster-wide over-provisioning"]}),"\n"]})]}),(0,i.jsxs)(l.mQ.Tab,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Condition messages"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"PodAffinityRulesNotMatch"})," / ",(0,i.jsx)(t.code,{children:"NodeSelectorNotMatch"})]}),"\n",(0,i.jsx)(t.li,{children:'"No nodes match pod affinity rules"'}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Root causes"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Node selector specifies labels that no nodes have"}),"\n",(0,i.jsx)(t.li,{children:"Pod affinity requires co-location with pods that don't exist"}),"\n",(0,i.jsx)(t.li,{children:"Pod anti-affinity prevents scheduling on all available nodes"}),"\n",(0,i.jsx)(t.li,{children:"Topology constraints can't be satisfied"}),"\n"]}
1),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Quick fixes"})}),(0,i.jsx)(t.p,{children:"Check current affinity rules:"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.code,{"data-language":"bash","data-theme":"default",children:[(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pod"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pod-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-n"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"namespac"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-o"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"jsonpath="}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'{.spec.affinity}'"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"nodes"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"--show-labels"})]})]})}),(0,i.jsx)(t.p,{children:"Relax hard requirements to soft preferences:"}),(0,i.jsx)(t.pre,{"data-language":"yaml","data-theme":"default",children:(0,i.jsxs)(t.code,{"data-language":"yaml","data-theme":"default",children:[(0,i.jsx)(t.span,{className:"line",children:(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-comment)"},children:"# Change from requiredDuringSchedulingIgnoredDuringExecution"})}),"\n",(0,i.jsx)(t.span,{className:"line",children:(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-comment)"},children:"# to preferredDuringSchedulingIgnoredDuringExecution"})}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"affinity"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"nodeAffinity"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"preferredDuringSchedulingIgnoredDuringExecution"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" - "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"weight"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-constant)"},children:"100"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"preference"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"matchExpressions"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" - "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"key"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:"disktype"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"operator"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:"In"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"values"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" ["}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"ssd"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"]"})]})]})}),(0,i.jsx)(t.p,{children:"Or add the missing labels to nodes:"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsx)(t.code,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"label"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"nodes"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"node-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"disktype=ssd"})]})})})]}),(0,i.jsxs)(l.mQ.Tab,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Condition messages"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"VolumeBindingFailed"})," / ",(0,i.jsx)(t.code,{children:"PersistentVolumeClaimNotFound"})]}),"\n",(0,i.jsx)(t.li,{children:'"PVC not bound" or "Volume zone mismatch"'}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Root causes"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"PVC waiting for the PV provisioner to create the volume"}),"\n",(0,i.jsx)(t.li,{children:"PV exists but in a different availability zone than the node"}),"\n",(0,i.jsx)(t.li,{children:"Storage class doesn't support dynamic provisioning"}),"\n",(0,i.jsx)(t.li,{children:"Volume capacity exhausted (no available PVs)"}),"\n"]}
1),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Quick fixes"})}),(0,i.jsx)(t.p,{children:"Diagnose PVC status:"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.code,{"data-language":"bash","data-theme":"default",children:[(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pvc"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-n"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"namespac"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"describe"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pvc"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pvc-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-n"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"namespac"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"})]}),"\n",(0,i.jsx)(t.span,{className:"line",children:" "}),"\n",(0,i.jsx)(t.span,{className:"line",children:(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-comment)"},children:"# Check storage class and provisioner"})}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"storageclass"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"clas"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"s"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-o"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"jsonpath="}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'{.provisioner}'"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pods"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-n"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"kube-system"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"|"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"grep"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"provisioner"})]})]})}),(0,i.jsx)(t.p,{children:"Check zone alignment:"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.code,{"data-language":"bash","data-theme":"default",children:[(0,i.jsx)(t.span,{className:"line",children:(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-comment)"},children:"# Verify PV and node are in the same zone"})}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pv"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"pv-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-o"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"jsonpath="}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'{.metadata.labels.topology\\.kubernetes\\.io/zone}'"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"get"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"node"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"node-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"-o"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"jsonpath="}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'{.metadata.labels.topology\\.kubernetes\\.io/zone}'"})]})]})}),(0,i.jsxs)(t.p,{children:["See also: ",(0,i.jsx)(t.a,{href:"/docs/wave-diagnosis/pv-capacity-forecast",children:"PV Capacity Forecast"}
1)," for storage capacity planning."]})]}),(0,i.jsxs)(l.mQ.Tab,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Condition messages"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.code,{children:"PodToleratesNodeTaints"})}),"\n",(0,i.jsx)(t.li,{children:'"Node has taints that the pod doesn\'t tolerate"'}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Root causes"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Node has taints (for example, ",(0,i.jsx)(t.code,{children:"node-role.kubernetes.io/master:NoSchedule"}),")"]}),"\n",(0,i.jsx)(t.li,{children:"Pod doesn't have matching tolerations"}),"\n",(0,i.jsx)(t.li,{children:"All nodes have taints the pod can't tolerate"}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Quick fixes"})}),(0,i.jsx)(t.p,{children:"Check node taints:"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsx)(t.code,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"describe"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"node"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"node-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"|"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"grep"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"Taints"})]})})}),(0,i.jsx)(t.p,{children:"Add a toleration to the pod:"}),(0,i.jsx)(t.pre,{"data-language":"yaml","data-theme":"default",children:(0,i.jsxs)(t.code,{"data-language":"yaml","data-theme":"default",children:[(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"spec"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"template"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"spec"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"tolerations"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" - "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"key"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:'"dedicated"'})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"operator"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:'"Equal"'})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"value"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:'"gpu"'})]}),"\n",(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"effect"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:":"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string-expression)"},children:'"NoSchedule"'})]})]})}),(0,i.jsx)(t.p,{children:"Or remove the taint from the node:"}),(0,i.jsx)(t.pre,{"data-language":"bash","data-theme":"default",children:(0,i.jsx)(t.code,{"data-language":"bash","data-theme":"default",children:(0,i.jsxs)(t.span,{className:"line",children:[(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-function)"},children:"kubectl"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"taint"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"nodes"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"node-nam"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:"e"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-keyword)"},children:">"}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(t.span,{style:{color:"var(--shiki-token-string)"},children:"dedicated=gpu:NoSchedule-"})]})})})]}),(0,i.jsxs)(l.mQ.Tab,{children:[(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Node Not Ready"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"The node is NotReady due to kubelet failure, network issues, or disk pressure."}),"\n",(0,i.jsxs)(t.li,{children:["Check ",(0,i.jsx)(t.code,{children:"kubectl describe node
1<node-name>"}),", restart kubelet, or replace the node."]}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Resource Quotas"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"The namespace has a ResourceQuota limiting total CPU or memory."}),"\n",(0,i.jsxs)(t.li,{children:["Check ",(0,i.jsx)(t.code,{children:"kubectl describe quota -n <namespace>"}),", then raise the quota or delete unused pods."]}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Priority Preemption"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"A low-priority pod is waiting for higher-priority pods to schedule first."}),"\n",(0,i.jsx)(t.li,{children:"Raise the pod's priority class, or wait for preemption to complete."}),"\n"]}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Image Pull Issues"})}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"ImagePullBackOff or ErrImagePull is not a scheduling issue, but it shows up in pod conditions."}),"\n",(0,i.jsx)(t.li,{children:"Verify the image exists, check registry credentials, and confirm nodes can reach the registry."}),"\n"]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"related",children:"Related"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"/docs/wave-diagnosis/overview",children:"Wave Diagnosis Overview"})}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"./cluster-resource-forecast",children:"Cluster Resource Forecast"}),": predict when capacity will run short."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"./idle-node-detection",children:"Idle Node Detection"}),": delays despite idle nodes point to taints, labels, or affinity."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"/docs/wave-diagnosis/pv-capacity-forecast",children:"PV Capacity Forecast"}),": volume-binding delays that trace back to storage exhaustion."]}),"\n"]})]})}function u(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}let p={MDXContent:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:t}=Object.assign({},(0,s.a)(),e.components);return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)},pageOpts:{filePath:"pages/docs/wave-diagnosis/pod-scheduling-delay.mdx",route:"/docs/wave-diagnosis/pod-scheduling-delay",frontMatter:{title:"Pod Scheduling Delay Detection",description:"Pod Scheduling Delay Detection tracks how long pods waited in Pending and why, with the exact scheduler conditions per workload, so you can tell a capacity shortage from a misconfigured pod spec at a glance.",searchable:!0},pageMap:[{kind:"MdxPage",name:"CLAUDE",route:"/CLAUDE"},{kind:"Meta",data:{index:{title:"Home",type:"page",display:"hidden",theme:{layout:"raw",navbar:!0}},solutions:{title:"Solutions",type:"page"},features:{title:"Features",type:"page"},pricing:{title:"Pricing",type:"page",theme:{layout:"raw",navbar:!0}},license:{title:"Free licence",type:"page",display:"hidden",theme:{layout:"raw",navbar:!0}},demo:{title:"Live Demo",type:"page",display:"hidden",theme:{layout:"raw",navbar:!0}},aws:{title:"AWS",type:"page",display:"hidden",theme:{layout:"raw",navbar:!0}},gpu:{title:"Wave GPU",type:"page",display:"hidden",theme:{layout:"raw",navbar:!0}},"ai-agent":{title:"Wave AI Agent",type:"page",display:"hidden",theme:{layout:"raw",navbar:!0}},docs:{title:"Docs",type:"page",href:"/docs/introduction"},"api-reference":{title:"API Reference",type:"page",href:"/api-reference",display:"hidden"},"korean-docs":{display:"hidden",type:"page",theme:{layout:"default",sidebar:!0,toc:!0}},blog:{title:"Blog",type:"page",href:"/blog"},"korean-blog":{display:"hidden",type:"page",theme:{layout:"default",sidebar:!0,toc:!0}},"japanese-blog":{display:"hidden",type:"page",theme:{layout:"default",sidebar:!0,toc:!0}},contact:{title:"Book a demo",type:"page"},"with-netfunnel":{title:"with NetFUNNEL",type:"page",href:"/contact/with-netfunnel",display:"hidden"},support:{title:"Support via Slack",type:"page",href:"https://waveautoscale.slack.com",newWindow:!0,display:"hidden"},company:{title:"Company",type:"page",href:"https://cloud.stclab.com",newWindow:!0},CLAUDE:{display:"hidden"}}},{kind:"MdxPage",name:"ai-agent",route:"/ai-agent",frontMatter:{title:"Wave AI Agent â an AI workflow that runs when an alert fires, and leaves a report | Wave",description:"Wave AI Agent runs a fixed four-step workflow inside the Wave console: a trigger, an AI agent, a report, and a notification. The agent investigates with built-in cluster tools and writes what it found and why. Bring your own
1LLM, hosted or self-hosted in the cluster. Coming 2026 Q4.",searchable:!0}},{kind:"Folder",name:"api-reference",route:"/api-reference",children:[{kind:"Meta",data:{index:{title:"Home",type:"page",theme:{layout:"raw",toc:!1}}}},{kind:"MdxPage",name:"index",route:"/api-reference",frontMatter:{title:"API Reference",description:"Interactive Wave Autoscale v3 REST API referenceâendpoints, schemas, and code samples to automate Kubernetes Day 2 operations programmatically.",searchable:!0}}]},{kind:"MdxPage",name:"aws",route:"/aws",frontMatter:{title:"Wave Autoscale for AWS EKS â Service Ready Partner & Marketplace",description:"Wave Autoscale is an AWS EKS Service Ready Partner available on AWS Marketplace. Automate Day 2 operations with ML-driven scaling, smart sizing, traffic control, and predictive insights for Amazon EKS.",searchable:!0}},{kind:"Folder",name:"blog",route:"/blog",children:[{kind:"MdxPage",name:"2025-01-13-why-kubernetes-automation-matters",route:"/blog/2025-01-13-why-kubernetes-automation-matters",frontMatter:{type:"posts",title:"Why Kubernetes Automation Matters: Simplify Complexity, Boost Productivity",date:"2025-01-13T00:00:00.000Z",author:"Hwansoo Kim",description:"Is your team overwhelmed by Kubernetes complexity? As containerized applications grow, managing Kubernetes at scale has become a massive challenge. Hereâs why automation is not just helpfulâitâs essential for modern cloud-native environments.",tags:["Kubernetes","Automation","Cloud-Native","DevOps"]}},{kind:"MdxPage",name:"2025-02-12-hpa-is-not-enough-for-your-kubernetes-operation",route:"/blog/2025-02-12-hpa-is-not-enough-for-your-kubernetes-operation",frontMatter:{type:"posts",title:"HPA Is Not Enough for Your Kubernetes OperationâHereâs Why",date:"2025-02-12T00:00:00.000Z",author:"Hwansoo Kim",description:"HPA is not enough for Kubernetes scaling! Learn why Horizontal Pod Autoscaler (HPA) struggles with slow response times, traffic prediction, and cost inefficienciesâand how Wave Autoscale uses AI to optimize scaling, reduce cloud waste, and improve performance. \uD83D\uDE80",tags:["Kubernetes","Automation","Cloud-Native","DevOps","HPA","VPA"]}},{kind:"MdxPage",name:"2025-04-04-what-llms-can-do-for-sres-in-cloud-native-infrastructure",route:"/blog/2025-04-04-what-llms-can-do-for-sres-in-cloud-native-infrastructure",frontMatter:{type:"posts",title:"What LLMs Can Do for SREs in Cloud Native Infrastructure",date:"2025-04-04T00:00:00.000Z",author:"Hwansoo Kim",description:"Discover how Large Language Models (LLMs) are reshaping cloud native operations by augmenting SRE workflows, enabling leaner teams to manage complex Kubernetes infrastructure with AI-powered automation.",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","AI in DevOps","Large Language Models","LLM","Kubernetes Scaling","Kubernetes Automation","AI Ops","Machine Learning","DevOps Tools","Wave Autoscale","Site Reliability Engineering","Pod Recovery","Smart Sizing","Horizontal Scaling","Vertical Scaling","Cloud Infrastructure","CNCF"]}},{kind:"MdxPage",name:"2025-04-23-wave-autoscale-2-4-0",route:"/blog/2025-04-23-wave-autoscale-2-4-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.4.0",date:"2025-04-23",author:"Hwansoo Kim",description:"Wave Autoscale 2.4.0",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","AI in DevOps","Large Language Models","LLM","Kubernetes Scaling","Kubernetes Automation","AI Ops","Machine Learning","DevOps Tools","Wave Autoscale","Site Reliability Engineering","Pod Recovery","Smart Sizing","Horizontal Scaling","Vertical Scaling","Cloud Infrastructure","CNCF"]}},{kind:"MdxPage",name:"2025-05-13-wave-autoscale-2-5-0",route:"/blog/2025-05-13-wave-autoscale-2-5-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.5.0",date:"2025-05-13",author:"Hwansoo Kim",description:"Wave Autoscale 2.5.0",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","Kubernetes Monitoring","AI in DevOps","Kubernetes Scaling","Kubernetes Automation","DevOps Tools","Wave Autoscale","Cluster Report","HPA Migration"]}},{kind:"MdxPage",name:"2025-06-24-wave-autoscale-2-6-0",route:"/blog/2025-06-24-wave-autoscale-2-6-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.6.0",date:"2025-06-24",author:"Hwansoo Kim",description:"Wave Autoscale 2.6.0",tags:["Kubernetes","SRE","Cloud Native","Infrastru
1cture Automation","Kubernetes Monitoring","AI in DevOps","Kubernetes Scaling","Kubernetes Automation","DevOps Tools","Wave Autoscale","Istio","Autopilot","WASM"]}},{kind:"MdxPage",name:"2025-07-21-wave-autoscale-2-7-0",route:"/blog/2025-07-21-wave-autoscale-2-7-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.7.0",date:"2025-07-21",author:"Hwansoo Kim",description:"Wave Autoscale 2.7.0 adds NetFUNNEL SaaS integration, Prometheus export, OpenShift fix, and Fargate support.",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","DevOps Tools","Wave Autoscale","NetFUNNEL","Prometheus","Grafana","AWS Fargate","OpenShift"]}},{kind:"MdxPage",name:"2025-11-28-wave-autoscale-3-0",route:"/blog/2025-11-28-wave-autoscale-3-0",frontMatter:{type:"posts",title:"Wave Autoscale 3.0",date:"2025-11-28",author:"Hwansoo Kim",description:"Wave Autoscale 3.0 delivers 40% cloud cost savings, 2x faster autoscaling than HPA, and comprehensive Day 2 operations automation from a single platform.",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","DevOps Tools","Wave Autoscale","Day 2 Operations","Autoscaling","EKS","Cost Optimization"]}},{kind:"MdxPage",name:"2025-12-16-8-hidden-costs-in-kubernetes-clusters-and-how-to-eliminate-them",route:"/blog/2025-12-16-8-hidden-costs-in-kubernetes-clusters-and-how-to-eliminate-them",frontMatter:{type:"posts",title:"8 Hidden Costs in Kubernetes Clusters and How to Eliminate Them",date:"2025-12-16",author:"Hwansoo Kim",description:"Discover the 8 hidden costs draining your Kubernetes budgetâfrom overprovisioning and orphaned storage to reactive scaling lagâand learn how to eliminate them with intelligent automation.",tags:["Kubernetes","FinOps","Cloud Cost Optimization","SRE","Cloud Native","DevOps","Wave Autoscale","Autoscaling","Resource Management"]}},{kind:"MdxPage",name:"2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More",route:"/blog/2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More",frontMatter:{type:"posts",title:"AI-driven vs Rules-based Scaling: What Saves More?",date:"2025-12-30",author:"Thomas Mathew",description:"Rules-based Kubernetes autoscaling breaks down at scale, static thresholds cannot keep up with hundreds of evolving workloads. Learn how AI-driven scaling eliminates manual tuning and delivers up to 40% cost savings.",tags:["Kubernetes","Autoscaling","HPA","KEDA","FinOps","Cloud Cost Optimization","SRE","DevOps","Wave Autoscale","AI Ops"]}},{kind:"MdxPage",name:"2025-12-31-what-is-smart-sizing-for-smarter-clouds",route:"/blog/2025-12-31-what-is-smart-sizing-for-smarter-clouds",frontMatter:{type:"posts",title:'What is "Smart Sizing" for Smarter Clouds: The Next Step Beyond Rightsizing',date:"2025-12-31",author:"Thomas Mathew",description:"Kubernetes clusters waste 30-40% of resources due to oversized requests. Learn why manual rightsizing and VPA fall short, and how Smart Sizing delivers actionable recommendations with unified scaling.",tags:["Kubernetes","Autoscaling","HPA","VPA","FinOps","Cloud Cost Optimization","SRE","DevOps","Wave Autoscale","AI Ops","Rightsizing","Smart Sizing","Resource Optimization"]}},{kind:"MdxPage",name:"2026-01-20-wave-autoscale-works-with-your-existing-infrastructure",route:"/blog/2026-01-20-wave-autoscale-works-with-your-existing-infrastructure",frontMatter:{type:"posts",title:"Wave Autoscale Works with Your Existing Infrastructure: Understanding Workload Management vs Infrastructure Management",date:"2026-01-20",author:"Wave Autoscale Team",description:"Learn how Wave Autoscale focuses on workload optimization within your existing Kubernetes infrastructure, complementing rather than replacing tools like Karpenter and Cluster Autoscaler.",tags:["Kubernetes","Autoscaling","Infrastructure","Workload Management","Karpenter","Cluster Autoscaler","Wave Autoscale","Cloud Native","DevOps","SRE","Resource Optimization"]}},{kind:"MdxPage",name:"2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa",route:"/blog/2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa",frontMatter:{type:"posts",title:"How to Manage Enterprise Kubernetes Workloads Beyond HPA: Eliminating Scaling Lag",date:"2026-01-30",author:"Thomas Mathew",description:"Learn why HPAs threshold-based scaling fails under real-world traffic patterns and how ML-driven autoscaling eliminates scaling lag, reducing error rates from 38% to near zero while cutting costs by up to 40%.",tags:["Kubernetes","Autoscaling","HPA","Wave Autoscale","Performance","SRE","DevOps","Cloud Cost Optimization","Machine Learning","Workload Management","Scaling","Enterprise Kubernetes"]}},{kind:"MdxPage",name:"2026-03-11-rethinking-kubernetes-observability",route:"/blog/2026-03-11-rethinking-kubernetes-observability",frontMatter:{type:"posts",title:"Rethinking Kubernetes Observability",date:"2026-03-11",author:"Thomas Mathew",description:"Teams spend 30-100% of their time manually analyzing Kubernetes metrics. Wave Autoscale transforms this operational overhead into automated intelligence: 7-30 day advance warnings, automated root cause analysis, and continuous optimization that identifies 40-60% resource waste.",tags:["Kubernetes","Observability","FinOps","Platform Engineering","SRE","Wave Autoscale","Resource Optimization","Capacity Planning"]}},{kind:"MdxPage",name:"2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy",route:"/blog/2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy",frontMatter:{type:"posts",title:"Why Traffic Shaping Is the Missing Piece in Your Kubernetes Scaling Strategy",date:"2026-03-12",author:"Thomas Mathew",description:"Netflix, Uber, and Google all use priority-based load shedding to protect critical services under pressure. Here is why your Kubernetes cluster needs the same pattern and how to implement it.",tags:["Kubernetes","Traffic Management","Load Shedding","Service Mesh","Platform Engineering","SRE","Wave Autoscale","Wave Flow","Istio","Enterprise Kubernetes"]}},{kind:"MdxPage",name:"2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter",route:"/blog/2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter",frontMatter:{type:"posts",title:"Toward an AI-Native Control Plane: Wave Autoscale's Next Chapter",date:"2026-03-13",author:"Wave Autoscale Team",description:"How Wave Autoscale is evolving from a scaling engine into an AI-native control plane for Kubernetes, replacing fragmented toolchains with a single natural-language interface.",tags:["Kubernetes","AI Agent","Wave Autoscale","MCP","Agentic Operations"]}},{kind:"MdxPage",name:"2026-03-23-wave-autoscale-3-1-0",route:"/blog/2026-03-23-wave-autoscale-3-1-0",frontMatter:{type:"posts",title:"Wave Autoscale 3.1.0: Taking Control of Karpenter with Node-Level Intelligence",date:"2026-03-23",author:"Hwansoo Kim",description:"Wave Autoscale 3.1.0 brings full Karpenter visibility and control to Amazon EKS â a real-time dashboard, intelligent node warmup with image pre-caching, zero-touch spot workload placement via webhook, and a 2x faster gRPC-powered Metrics Agent.",tags:["Kubernetes","Amazon EKS","Karpe
1nter","Spot Instances","SRE","Cloud Native","DevOps","Wave Autoscale","Node Management","gRPC"]}},{kind:"MdxPage",name:"2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support",route:"/blog/2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support",frontMatter:{type:"posts",title:"Wave Autoscale 3.2.0: GPU-Aware Autoscaling and OpenShift Support",date:"2026-04-29",author:"Hwansoo Kim",description:"Wave Autoscale 3.2.0 brings GPU-aware autoscaling â DCGM-based metrics, cost tracking, and waste detection â and adds first-class OpenShift support, including DeploymentConfig and a Red Hat-certified Helm chart.",tags:["Kubernetes","Autoscaling","GPU","NVIDIA DCGM","OpenShift","FinOps","Cost Optimization","Wave Autoscale","Platform Engineering","Helm"]}},{kind:"MdxPage",name:"2026-05-21-wave-autoscale-3-2-2",route:"/blog/2026-05-21-wave-autoscale-3-2-2",frontMatter:{type:"posts",title:"Wave Autoscale 3.2.2: SSO, Realtime Smart Sizing, and Wave Diagnosis",date:"2026-05-21",author:"Hwansoo Kim",description:"Wave Autoscale 3.2.2 closes the loop between Smart Sizing recommendations and the cluster with in-place pod resize, adds OIDC single sign-on to the Web Console, and reorganizes the diagnostic surface into a failure-first information architecture.",tags:["Kubernetes","Autoscaling","Smart Sizing","In-Place Pod Resize","SSO","OIDC","Wave Diagnosis","Wave Autoscale","Platform Engineering","SRE"]}},{kind:"Meta",data:{index:{title:"Blog",type:"page",display:"hidden"},"2026-05-21-wave-autoscale-3-2-2":{title:"Wave Autoscale 3.2.2: SSO, Realtime Smart Sizing, and Wave Diagnosis"},"2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support":{title:"Wave Autoscale 3.2.0: GPU-Aware Autoscaling and OpenShift Support"},"2026-03-23-wave-autoscale-3-1-0":{title:"Wave Autoscale 3.1.0: Taking Control of Karpenter"},"2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter":{title:"Toward an AI-Native Control Plane: Wave Autoscale's Next Chapter"},"2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy":{title:"Why Traffic Shaping Is the Missing Piece in Your Kubernetes Scaling Strategy"},"2026-03-11-rethinking-kubernetes-observability":{title:"Rethinking Kubernetes Observability"},"2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa":{title:"How to Manage Enterprise Kubernetes Workloads Beyond HPA: Eliminating Scaling Lag"},"2026-01-20-wave-autoscale-works-with-your-existing-infrastructure":{title:"Understanding Workload Management vs Infrastructure Management"},"2025-12-31-what-is-smart-sizing-for-smarter-clouds":{title:"What is 'Smart Sizing' for Smarter Clouds: The Next Step Beyond Rightsizing"},"2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More":{title:"AI-driven vs Rules-based Scaling: What Saves More?"},"2025-12-16-8-hidden-costs-in-kubernetes-clusters-and-how-to-eliminate-them":{title:"8 Hidden Costs in Kubernetes Clusters and How to Eliminate Them"},"2025-11-28-wave-autoscale-3-0":{title:"Wave Autoscale 3.0"},"2025-07-21-wave-autoscale-2-7-0":{title:"Wave Autoscale 2.7.0"},"2025-06-24-wave-autoscale-2-6-0":{title:"Wave Autoscale 2.6.0"},"2025-05-13-wave-autoscale-2-5-0":{title:"Wave Autoscale 2.5.0"},"2025-04-23-wave-autoscale-2-4-0":{title:"Wave Autoscale 2.4.0"},"2025-04-04-what-llms-can-do-for-sres-in-cloud-native-infrastructure":{title:"What LLMs Can Do for SREs in Cloud Native Infrastructure"},"2025-02-12-hpa-is-not-enough-for-your-kubernetes-operation":{title:"HPA is not enough for your Kubernetes operation"},"2025-01-13-why-kubernetes-automation-matters":{title:"Why Kubernetes Automation Matters"}}}]},{kind:"Folder",name:"contact",route:"/contact",children:[{kind:"MdxPage",name:"CLAUDE",route:"/contact/CLAUDE"},{kind:"Meta",data:{index:{title:"Home",type:"page",theme:{layout:"raw",toc:!1}},"with-netfunnel":{title:"With NetFunnel",type:"page",theme:{layout:"raw",toc:!1}}}},{kind:"MdxPage",name:"index",route:"/contact",frontMatter:{title:"Contact",description:"Contact the Wave team to book a free demo and see how Wave automates Kubernetes Day 2 operations while reducing cost and engineering overhead.",searchable:!0}},{kind:"MdxPage",name:"with-netfunnel",route:"/contact/with-netfunnel",frontMatter:{title:"With Netfunnel",description:"Combine Wave's intelligent scaling with NetFUNNEL traffic control for unified Kubernetes Day 2 operations during peak traffic events.",searchable:!0}}]},{kind:"MdxPage",name:"demo",route:"/demo",frontMatter:{title:"Wave Console Live Demo â explore the product in your browser | Wave",description:"Click through the Wave console with simulated data â sizing recommendations, Autopilot scaling, K8s diagnosis. No signup.",searchable:!0}},{kind:"Folder",name:"docs",route:"/docs",children:[{kind:"Folder",name:"___kubernetes",route:"/docs/___kubernetes",children:[{kind:"Meta",data:{deloyments:{title:"Deployments"},"statefulsets-and-daemonsets":{title:"StatefulSets and DaemonSets"},"traffic-protection":{title:"Traffic Protection"},"pod-placement":{title:"Pod Placement"}}},{kind:"MdxPage",name:"deloyments",route:"/docs/___kubernetes/deloyments"},{kind:"MdxPage",name:"pod-placement",route:"/docs/___kubernetes/pod-placement"},{kind:"MdxPage",name:"statefulsets-and-daemonsets",route:"/docs/___kubernetes/statefulsets-and-daemonsets"},{kind:"MdxPage",name:"traffic-protection",route:"/docs/___kubernetes/traffic-protection"}]},{kind:"Folder",name:"__backup",route:"/docs/__backup",children:[{kind:"MdxPage",name:"___core-concepts",route:"/docs/__backup/___core-concepts"},{kind:"MdxPage",name:"___getting-started",route:"/docs/__backup/___getting-started"},{kind:"Meta",data:{"--- Overview":{title:"Overview",type:"separator"},introduction:{title:"Introduction",theme:{sidebar:!0,toc:!0}},"supported-kubernetes-platforms":{title:"Supported Kubernetes Platforms",theme:{sidebar:!0,toc:!0}},"--- Getting Started":{title:"Getting Started",type:"separator"},"quick-start":{title:"Quick Start"}
1,licensing:{title:"Licensing"},"supported-platforms":{title:"Supported Platforms"},"installation-guides":{title:"Installation Guides"},"--- Features":{title:"Features",type:"separator"},"features-workloads":{title:"Workloads"},autopilot:{title:"Autopilot (Horizontal Scaling)"},"right-sizing":{title:"Right Sizing (Vertical Scaling)"},"auto-traffic-control":{title:"Auto Traffic Control"},"wa-metrics-agent":{title:"WA Metrics Agent"}}},{kind:"MdxPage",name:"auto-traffic-control",route:"/docs/__backup/auto-traffic-control"},{kind:"MdxPage",name:"autopilot",route:"/docs/__backup/autopilot"},{kind:"MdxPage",name:"features-workloads",route:"/docs/__backup/features-workloads"},{kind:"MdxPage",name:"right-sizing",route:"/docs/__backup/right-sizing"},{kind:"MdxPage",name:"wa-metrics-agent",route:"/docs/__backup/wa-metrics-agent"}]},{kind:"Meta",data:{"--- Overview":{title:"Overview",type:"separator"},introduction:{title:"Introduction",theme:{sidebar:!0,toc:!0}},"wave-vs-hpa-vpa-prometheus":{title:"Wave vs HPA, VPA, and Prometheus",theme:{sidebar:!0,toc:!0}},architecture:{title:"Architecture",theme:{sidebar:!0,toc:!0}},"--- Getting Started":{title:"Getting Started",type:"separator"},"important-before-you-begin":{title:"Important: Before You Begin",theme:{sidebar:!0,toc:!0}},"quick-start":{title:"Quick Start"},"installation-guides":{title:"Installation Guides"},"helm-values-environment-variables":{title:"Helm Values & Environment Variables",theme:{sidebar:!0,toc:!0}},"crd-mode":{title:"CRD Mode",theme:{sidebar:!0,toc:!0}},"--- Features":{title:"Features",type:"separator"},"wave-sizing":{title:"Wave Sizing",theme:{collapsed:!0}},"wave-autoscale":{title:"Wave Autoscale",theme:{collapsed:!0}},"wave-diagnosis":{title:"Wave Diagnosis",theme:{collapsed:!0}},"wave-karpenter":{title:"Wave Karpenter",theme:{collapsed:!0}},"wave-flow":{title:"Wave Flow",theme:{collapsed:!0}},"additional-features":{title:"Additional Features",theme:{collapsed:!0}},"wave-gpu":{title:"Wave GPU (Preview)",theme:{collapsed:!0}},"wave-ai-agent":{title:"Wave AI Agent (Preview)",theme:{collapsed:!0}},administration:{title:"Administration",theme:{collapsed:!0}},reference:{title:"Reference",theme:{collapsed:!0}}}},{kind:"Folder",name:"additional-features",route:"/docs/additional-features",children:[{kind:"Meta",data:{"*":{theme:{sidebar:!0,toc:!0}},"pv-lifecycle":{title:"PV Lifecycle"},alerts:{title:"Alerts"}}},{kind:"Folder",name:"alerts",route:"/docs/additional-features/alerts",children:[{kind:"Meta",data:{overview:{title:"Overview"},"getting-started":{title:"Getting Started"},"how-it-works":{title:"How it Works"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"crds",route:"/docs/additional-features/alerts/crds",frontMatter:{title:"Alert CRDs",description:"Field reference for the two CRD kinds that configure Alerts in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/docs/additional-features/alerts/getting-started",frontMatter:{title:"Getting Started with Alerts"}},{kind:"MdxPage",name:"how-it-works",route:"/docs/additional-features/alerts/how-it-works",frontMatter:{title:"How Alerts Works"}},{kind:"MdxPage",name:"overview",route:"/docs/additional-features/alerts/overview",frontMatter:{title:"Alerts Overview"}}]},{kind:"Folder",name:"pv-lifecycle",route:"/docs/additional-features/pv-lifecycle",children:[{kind:"Meta",data:{overview:{title:"Overview"},"getting-started":{title:"Getting Started"},"auto-clean-up":{title:"Auto Clean Up"},"auto-expansion":{title:"Auto Expansion"},"capacity-forecast":{title:"PV Capacity Forecast"},"unused-detection":{title:"Unused PV Detection"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"auto-clean-up",route:"/docs/additional-features/pv-lifecycle/auto-clean-up",frontMatter:{title:"Auto Clean Up"}},{kind:"MdxPage",name:"auto-expansion",route:"/docs/additional-features/pv-lifecycle/auto-expansion",frontMatter:{title:"Auto Expansion"}},{kind:"MdxPage",name:"capacity-forecast",route:"/docs/additional-features/pv-lifecycle/capacity-forecast",frontMatter:{title:"PV Capacity Forecast"}},{kind:"MdxPage",name:"crds",route:"/docs/additional-features/pv-lifecycle/crds",frontMatter:{title:"PV Lifecycle CRDs",description:"Field reference for the WavePvcAutoExpansion CRD kind that configures PVC auto-expansion in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/docs/additional-features/pv-lifecycle/getting-started",frontMatter:{title:"Getting Started with PV Lifecycle Management"}},{kind:"MdxPage",name:"overview",route:"/docs/additional-features/pv-lifecycle/overview",frontMatter:{title:"PV Lifecycle Management Overview"}},{kind:"MdxPage",name:"unused-detection",route:"/docs/additional-features/pv-lifecycle/unused-detection",frontMatter:{title:"Unused PV Detection"}}]}]},{kind:"Folder",name:"administration",route:"/docs/administration",children:[{kind:"Meta",data:{"sso-setup":{title:"SSO Setup (OIDC)"}}},{kind:"MdxPage",name:"sso-setup",route:"/docs/administration/sso-setup",frontMatter:{title:"SSO Setup (OIDC)",description:"Configure OpenID Connect single sign-on for the Wave Web Console â Okta, Microsoft Entra ID (Azure AD), Google Worksp
1ace, Keycloak, and other standards-compliant OIDC providers.",searchable:!0}}]},{kind:"MdxPage",name:"architecture",route:"/docs/architecture",frontMatter:{title:"Architecture",description:"Wave's cloud-native architecture: five core components across a centralized StatefulSet and a per-node DaemonSet for Kubernetes Day 2 automation."}},{kind:"MdxPage",name:"crd-mode",route:"/docs/crd-mode",frontMatter:{title:"CRD Mode",description:"Manage every Wave operational setting as Kubernetes Custom Resources in Git â Console Mode vs CRD Mode, enabling, the 14 CRD kinds, sync status, and ArgoCD integration.",searchable:!0}},{kind:"MdxPage",name:"helm-values-environment-variables",route:"/docs/helm-values-environment-variables",frontMatter:{title:"Helm Values & Environment Variables",description:"Full reference for Wave's environment variables and Helm values."}},{kind:"MdxPage",name:"important-before-you-begin",route:"/docs/important-before-you-begin",frontMatter:{title:"Important: Before You Begin",description:"Wave's runtime behaviors that trip up first-time users: ML training warmup, monitoring mode, 10-minute analysis cadences, and Realtime Resizing caveats."}},{kind:"Folder",name:"installation-guides",route:"/docs/installation-guides",children:[{kind:"Meta",data:{"amazon-eks":{title:"Amazon EKS"},openshift:{title:"Red Hat OpenShift"},"generic-kubernetes":{title:"Generic Kubernetes"}}},{kind:"MdxPage",name:"amazon-eks",route:"/docs/installation-guides/amazon-eks",frontMatter:{title:"Amazon EKS Installation",description:"Install Wave on Amazon EKS via AWS Marketplace (Metered or BYOL) or GHCR."}},{kind:"MdxPage",name:"generic-kubernetes",route:"/docs/installation-guides/generic-kubernetes",frontMatter:{title:"Generic Kubernetes Installation",description:"Install Wave on AKS, GKE, OKD, or self-managed Kubernetes via GHCR. Includes air-gapped / private registry guidance."}},{kind:"MdxPage",name:"openshift",route:"/docs/installation-guides/openshift",frontMatter:{title:"Red Hat OpenShift Installation",description:"Install Wave on OpenShift via the certified Operator (OperatorHub), the Red Hat Ecosystem Catalog Helm chart, or GHCR."}}]},{kind:"MdxPage",name:"introduction",route:"/docs/introduction",frontMatter:{title:"Introduction to Wave",description:"Wave is the best-practice operations layer for Kubernetes: it advises and automates Day 2 operations. Six sub-brands cover scaling, sizing, node management, traffic, insights, and more."}},{kind:"MdxPage",name:"quick-start",route:"/docs/quick-start",frontMatter:{title:"Quick Start",description:"Pick your platform and install Wave on Kubernetes."}},{kind:"Folder",name:"reference",route:"/docs/reference",children:[{kind:"Meta",data:{"*":{theme:{sidebar:!0,toc:!0}},"api-reference":{title:"API Reference",href:"/api-reference"},troubleshooting:{title:"Troubleshooting"}}},{kind:"MdxPage",name:"troubleshooting",route:"/docs/reference/troubleshooting",frontMatter:{title:"Troubleshooting",description:"Common issues and how to resolve them."}}]},{kind:"Folder",name:"wave-ai-agent",route:"/docs/wave-ai-agent",children:[{kind:"Meta",data:{"*":{theme:{sidebar:!0,toc:!0}},overview:{title:"Overview"},"mcp-server-architecture":{title:"MCP Server Architecture"},roadmap:{title:"Roadmap"}}},{kind:"MdxPage",name:"mcp-server-architecture",route:"/docs/wave-ai-agent/mcp-server-architecture",frontMatter:{title:"Wave AI Agent â MCP Server Architecture",description:"How the Wave MCP server exposes Kubernetes operations to AI coding agents."}},{kind:"MdxPage",name:"overview",route:"/docs/wave-ai-agent/overview",frontMatter:{title:"Wave AI Agent Overview",description:"The Unified K8s MCP Server for Claude, Codex, and Cursor. Currently in development."}},{kind:"MdxPage",name:"roadmap",route:"/docs/wave-ai-agent/roadmap",frontMatter:{title:"Wave AI Agent Roadmap",description:"What's coming next for Wave AI Agent."}}]},{kind:"Folder",name:"wave-autoscale",route:"/docs/wave-autoscale",children:[{kind:"Meta",data:{overview:{title:"Overview"},"getting-started":{title:"Getting Started"},"core-configuration":{title:"Core Configuration"},"cost-vs-performance":{title:"Cost vs Performance Optimization"},"predictive-scaling":{title:"Predictive Scaling"}
1,"timing-controls":{title:"Timing Controls"},scheduler:{title:"Autopilot Scheduler"},"min-max-recommendations":{title:"Min/Max Recommendations"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"core-configuration",route:"/docs/wave-autoscale/core-configuration",frontMatter:{title:"Autopilot Core Configuration | Wave",description:"Complete reference for all Wave Autopilot configuration settings including scaling thresholds, metrics, and policy options."}},{kind:"MdxPage",name:"cost-vs-performance",route:"/docs/wave-autoscale/cost-vs-performance",frontMatter:{title:"Autopilot Cost vs Performance Optimization | Wave",description:"Understand the two Autopilot scaling strategies â cost-optimized and performance-optimized â and how to choose the right one for each workload."}},{kind:"MdxPage",name:"crds",route:"/docs/wave-autoscale/crds",frontMatter:{title:"Wave Autoscale CRDs",description:"Field reference for the three CRD kinds that configure Wave Autoscale (Autopilot) in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/docs/wave-autoscale/getting-started",frontMatter:{title:"Getting Started with Autopilot | Wave",description:"Quick start guide to enable Wave Autopilot for your Kubernetes workloads from the Autopilot page in minutes."}},{kind:"MdxPage",name:"min-max-recommendations",route:"/docs/wave-autoscale/min-max-recommendations",frontMatter:{title:"Min/Max Recommendations | Wave",description:"ML-driven minimum and maximum replica boundaries for Autopilot, derived from each Deployment's traffic patterns."}},{kind:"MdxPage",name:"overview",route:"/docs/wave-autoscale/overview",frontMatter:{title:"Autopilot Overview | Wave",description:"Learn how Wave Autopilot uses ML-driven horizontal pod autoscaling to react in seconds and replace manual HPA configuration."}},{kind:"MdxPage",name:"predictive-scaling",route:"/docs/wave-autoscale/predictive-scaling",frontMatter:{title:"Autopilot Predictive Scaling | Wave",description:"How Wave Autopilot uses time-series forecasting to predict future load and scale workloads before traffic arrives, preventing latency spikes."}},{kind:"MdxPage",name:"scheduler",route:"/docs/wave-autoscale/scheduler",frontMatter:{title:"Autopilot Scheduler | Wave",description:"Apply different Autopilot configurations at specific times using cron expressions â ideal for business hours, promotional events, and maintenance windows."}},{kind:"MdxPage",name:"timing-controls",route:"/docs/wave-autoscale/timing-controls",frontMatter:{title:"Autopilot Timing Controls | Wave",description:"Fine-tune Autopilot scaling behavior with timing controls that balance responsiveness and stability â scale-up delay, scale-down stabilization, and cooldown periods."}}]},{kind:"Folder",name:"wave-diagnosis",route:"/docs/wave-diagnosis",children:[{kind:"Meta",data:{overview:{title:"Overview"},crds:{title:"CRDs"},"--- Failures":{title:"Failures",type:"separator"},"pod-container-failures":{title:"Pod/Container Failures"},"memory-leak-detection":{title:"Memory Leak Detection"}
1,"pod-scheduling-delay":{title:"Pod Scheduling Delay"},"cpu-utilization":{title:"Workload CPU Utilization"},"--- Waste":{title:"Waste",type:"separator"},"idle-node-detection":{title:"Idle Node Detection"},"--- Capacity":{title:"Capacity",type:"separator"},"cluster-resource-forecast":{title:"Cluster Resource Forecast"},"pv-capacity-forecast":{title:"PV Capacity Forecast"}}},{kind:"MdxPage",name:"cluster-resource-forecast",route:"/docs/wave-diagnosis/cluster-resource-forecast",frontMatter:{title:"Cluster Resource Forecast",description:"Cluster Resource Forecast projects cluster-level CPU and memory utilization at 7 and 30 days, so you can add capacity or right-size workloads before the cluster runs short instead of after.",searchable:!0}},{kind:"MdxPage",name:"cpu-utilization",route:"/docs/wave-diagnosis/cpu-utilization",frontMatter:{title:"Workload CPU Utilization Analysis",description:"Workload CPU Utilization Analysis classifies every workload by how hard its CPU runs into four levels, so you can spot CPU-starved and over-provisioned workloads across the whole cluster at a glance.",searchable:!0}},{kind:"MdxPage",name:"crds",route:"/docs/wave-diagnosis/crds",frontMatter:{title:"Wave Diagnosis CRDs",description:"Field reference for the WaveDiagnosisConfig CRD kind that configures Wave Diagnosis tasks in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"idle-node-detection",route:"/docs/wave-diagnosis/idle-node-detection",frontMatter:{title:"Idle Node Detection",description:"Idle Node Detection finds nodes you are paying for but not using, ones running only DaemonSets or no pods at all, and quantifies the wasted CPU and memory so you can consolidate or scale them down.",searchable:!0}},{kind:"MdxPage",name:"memory-leak-detection",route:"/docs/wave-diagnosis/memory-leak-detection",frontMatter:{title:"Memory Leak Detection",description:"Memory Leak Detection finds workloads whose memory floor keeps climbing, and flags workloads running close to their memory limit, so you can act before an OOMKill instead of after it.",searchable:!0}},{kind:"MdxPage",name:"overview",route:"/docs/wave-diagnosis/overview",frontMatter:{title:"Wave Diagnosis Overview",description:"Wave Diagnosis is a diagnosis console that answers three operator questions directly: what is failing right now, where money is leaking, and what will soon run short. It turns raw cluster signals into answers instead of leaving you to interpret dashboards."}},{kind:"MdxPage",name:"pod-container-failures",route:"/docs/wave-diagnosis/pod-container-failures",frontMatter:{title:"Pod/Container Failures",description:"Pod/Container Failures automatically detects abnormal pod and container terminations (OOMKilled, CrashLoopBackOff, silent crashes, evictions, preemptions, and more) directly from agent push data, and captures the logs, YAML, and incident timeline needed to find the root cause.",searchable:!0}},{kind:"MdxPage",name:"pod-scheduling-delay",route:"/docs/wave-diagnosis/pod-scheduling-delay",frontMatter:{title:"Pod Scheduling Delay Detection",description:"Pod Scheduling Delay Detection tracks how long pods waited in Pending and why, with the exact scheduler conditions per workload, so you can tell a capacity shortage from a misconfigured pod spec at a glance.",searchable:!0}},{kind:"MdxPage",name:"pv-capacity-forecast",route:"/docs/wave-diagnosis/pv-capacity-forecast",frontMatter:{title:"PV Capacity Forecast",description:"PV Capacity Forecast projects each PersistentVolume's usage at 7 and 30 days, so you expand or clean up storage before a volume fills and takes an application down.",searchable:!0}}]},{kind:"Folder",name:"wave-flow",route:"/docs/wave-flow",children:[{kind:"Meta",data:{overview:{title:"Overview",theme:{sidebar:!0,toc:!0}},"getting-started":{title:"Getting Started",theme:{sidebar:!0,toc:!0}},"priority-load-shedding":{title:"Priority-Based Traffic Protection",theme:{sidebar:!0,toc:!0}},netfunnel:{title:"NetFUNNEL Integration"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"crds",route:"/docs/wave-flow/crds",frontMatter:{title:"Wave Flow CRDs",description:"Field reference for the three CRD kinds that configure Wave Flow in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/docs/wave-flow/getting-started",frontMatter:{title:"Getting Started with Wave Flow"}},{kind:"MdxPage",name:"netfunnel",route:"/docs/wave-flow/netfunnel",frontMatter:{title:"NetFUNNEL Integration",searchable:!0}},{kind:"MdxPage",name:"overview",route:"/docs/wave-flow/overview",frontMatter:{title:"Wave Flow Overview"}},{kind:"MdxPage",name:"priority-load-shedding",route:"/docs/wave-flow/priority-load-shedding",frontMatter:{title:"Priority-Based Traffic Protection"}}]},{kind:"Folder",name:"wave-gpu",route:"/docs/wave-gpu",children:[{kind:"Meta",data:{"*":{theme:{sidebar:!0,toc:!0}},overview:{title:"Overview"},roadmap:{title:"Roadmap"}}},{kind:"MdxPage",name:"overview",route:"/docs/wave-gpu/overview",frontMatter:{title:"Wave GPU Overview",description:"The GPU Operations Layer for Kubernetes, from visibility to optimization."}},{kind:"MdxPage",name:"roadmap",route:"/docs/wave-gpu/roadmap",frontMatter:{title:"Wave GPU Roadmap",description:"What's coming next for Wave GPU."}}]},{kind:"Folder",name:"wave-karpenter",route:"/docs/wave-karpenter",children:[{kind:"Meta",data:{overview:{title:"Overview"},"getting-started":{title:"Getting Started"},dashboard:{title:"Dashboard"}
1,"node-warmup":{title:"Node Warmup"},"spot-workload-placement":{title:"Spot Workload Placement"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"crds",route:"/docs/wave-karpenter/crds",frontMatter:{title:"Wave Karpenter CRDs",description:"Field reference for the CRD kinds that configure Wave Karpenter in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"dashboard",route:"/docs/wave-karpenter/dashboard",frontMatter:{title:"Karpenter Dashboard"}},{kind:"MdxPage",name:"getting-started",route:"/docs/wave-karpenter/getting-started",frontMatter:{title:"Getting Started with Karpenter Integration"}},{kind:"MdxPage",name:"node-warmup",route:"/docs/wave-karpenter/node-warmup",frontMatter:{title:"Node Warmup"}},{kind:"MdxPage",name:"overview",route:"/docs/wave-karpenter/overview",frontMatter:{title:"Karpenter Integration Overview"}},{kind:"MdxPage",name:"spot-workload-placement",route:"/docs/wave-karpenter/spot-workload-placement",frontMatter:{title:"Spot Workload Placement"}}]},{kind:"Folder",name:"wave-sizing",route:"/docs/wave-sizing",children:[{kind:"Meta",data:{overview:{title:"Overview"},"getting-started":{title:"Getting Started"},dashboard:{title:"The Sizing Console"},"smart-sizing-tab":{title:"Smart Sizing Tab in Workload"},"aggressive-recommendations":{title:"Aggressive Recommendations"},"resize-now":{title:"Resize Now (Manual Apply)"},"realtime-smart-sizing":{title:"Realtime Resizing"},"container-settings":{title:"Container Settings"},"smart-sizing-report":{title:"Smart Sizing Report"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"aggressive-recommendations",route:"/docs/wave-sizing/aggressive-recommendations",frontMatter:{title:"Aggressive Recommendations",description:"Cost-first Smart Sizing: recommend from the last 1 hour of usage (request = average, limit = peak) instead of the 7+ day window, and when to use it.",searchable:!0}},{kind:"MdxPage",name:"container-settings",route:"/docs/wave-sizing/container-settings",frontMatter:{title:"Container Settings",description:"Per-container Smart Sizing controls: recommendation bounds (min/max and safety buffer) and auto-apply opt-in with request/limit granularity.",searchable:!0}},{kind:"MdxPage",name:"crds",route:"/docs/wave-sizing/crds",frontMatter:{title:"Wave Sizing CRDs",description:"Field reference for the WaveSmartSizingPolicy CRD kind that configures Smart Sizing in CRD Mode.",searchable:!0}},{kind:"MdxPage",name:"dashboard",route:"/docs/wave-sizing/dashboard",frontMatter:{title:"The Sizing Console",description:"Reading the Wave Sizing console: the Overview and Recommendations pages, with savings and risk KPIs, Provisioning Mix, Take Action lists, and per-container status badges.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/docs/wave-sizing/getting-started",frontMatter:{title:"Getting Started with Smart Sizing",description:"From a fresh Wave install to your first right-sized workload: reviewing the dashboard, applying a recommendation, and graduating to Realtime Resizing.",searchable:!0}},{kind:"MdxPage",name:"overview",route:"/docs/wave-sizing/overview",frontMatter:{title:"Smart Sizing Overview",description:"How Smart Sizing recommends CPU and memory for every workload: the usage-based model, the workload performance model for HPA/Autopilot, and the two ways to apply recommendations.",searchable:!0}},{kind:"MdxPage",name:"realtime-smart-sizing",route:"/docs/wave-sizing/realtime-smart-sizing",frontMatter:{title:"Realtime Resizing",description:"Operational guide for Realtime Resizing, Wave's automatic application pipeline for Smart Sizing recommendations. Apply Modes, skip thresholds, cluster prerequisites, and known interactions with ArgoCD and Autopilot.",searchable:!0}},{kind:"MdxPage",name:"resize-now",route:"/docs/wave-sizing/resize-now",frontMatter:{title:"Resize Now (Manual Apply)",description:"Applying a Smart Sizing recommendation on demand: the Resize Now modal, Edit CRD vs In-Place Pod Resize, Kubernetes version requirements, and troubleshooting.",searchable:!0}},{kind:"MdxPage",name:"smart-sizing-report",route:"/docs/wave-sizing/smart-sizing-report",frontMatter:{title:"Smart Sizing Report",description:"The Smart Sizing Report summarizes a cluster's right-sizing posture in one place (potential savings, efficiency rate, reliability posture, AS-IS â TO-BE CPU/memory, monthly spend, and a savings journey), ready to share or export to PDF.",searchable:!0}},{kind:"MdxPage",name:"smart-sizing-tab",route:"/docs/wave-sizing/smart-sizing-tab",frontMatter:{title:"Smart Sizing Tab in Workload",description:"Reading a workload's Smart Sizing tab: Info card, container cards, recommendation history, Apply History, and Restore Original.",searchable:!0}}]},{kind:"MdxPage",name:"wave-vs-hpa-vpa-prometheus",route:"/docs/wave-vs-hpa-vpa-prometheus",frontMatter:{title:"Wave vs HPA, VPA, and Prometheus",description:"How Wave compares to default Kubernetes autoscaling primitives and the Prometheus + HPA pattern."}}]},{kind:"Folder",name:"features",route:"/features",children:[{kind:"MdxPage",name:"CLAUDE",route:"/features/CLAUDE"},{kind:"Meta",data:{"*":{display:"hidden"},"---wave-autoscale":{type:"separator",title:"Wave Autoscale"},autopilot:{title:"Autopilot",type:"page"},"autopilot-scheduler":{title:"Autopilot Scheduler",type:"page"},"min-max-recommendation":{title:"Min/Max Recommendation",type:"page"},"---wave-sizing":{type:"separator",title:"Wave Sizing"},"smart-sizing":{title:"Smart Sizing",type:"page"},"realtime-resizing":{title:"Realtime Resizing",type:"page"},"---wave-karpenter":{type:"separator",title:"Wave Karpenter"},"karpenter-dashboard":{title:"Karpenter Dashboard",type:"page"}
1,"karpenter-node-warmup":{title:"Node Warmup",type:"page"},"karpenter-spot-workload-placement":{title:"Spot Workload Placement",type:"page"},"---wave-flow":{type:"separator",title:"Wave Flow"},"wave-flow":{title:"Wave Flow",type:"page"},"netfunnel-integration":{title:"NetFUNNEL Integration",type:"page"},"---wave-diagnosis":{type:"separator",title:"Wave Diagnosis"},"cluster-resource-forecast":{title:"Cluster Resource Forecast",type:"page"},"memory-leak-detection":{title:"Memory Leak Detection",type:"page"},"cpu-utilization-analysis":{title:"CPU Utilization Analysis",type:"page"},"pod-scheduling-delay-detection":{title:"Pod Scheduling Delay Detection",type:"page"},"idle-node-detection":{title:"Idle Node Detection",type:"page"},"---other":{type:"separator",title:"Other Features"},"pv-auto-expansion":{title:"PV Auto-Expansion",type:"page"},"pv-capacity-forecast":{title:"PV Capacity Forecast",type:"page"},"pv-cleanup":{title:"PV Cleanup",type:"page"},"unused-pv-detection":{title:"Unused PV Detection",type:"page"},alerts:{title:"Alerts",type:"page"},"programmable-api":{title:"Programmable API",type:"page"},sso:{title:"SSO (OIDC)",type:"page"}}},{kind:"MdxPage",name:"alerts",route:"/features/alerts",frontMatter:{title:"Alerts â Proactive Kubernetes Monitoring | Wave",description:"Proactive Kubernetes alerts that notify you of predicted failures and optimization opportunities before they impact production.",searchable:!0}},{kind:"MdxPage",name:"autopilot-scheduler",route:"/features/autopilot-scheduler",frontMatter:{title:"Autopilot Scheduler â Schedule Kubernetes Scaling Policies | Wave",description:"Schedule recurring and one-time Kubernetes scaling policies for known events like peak hours and campaigns, automating capacity guardrails.",searchable:!0}},{kind:"MdxPage",name:"autopilot",route:"/features/autopilot",frontMatter:{title:"Autopilot â ML-Driven Kubernetes Auto-Scaling | Wave",description:"Wave Autopilot replaces manual HPA configuration with ML-driven scaling that reacts in seconds, not minutes.",searchable:!0}},{kind:"MdxPage",name:"cluster-resource-forecast",route:"/features/cluster-resource-forecast",frontMatter:{title:"Cluster Resource Forecast â Predictive Kubernetes Resource Management | Wave",description:"Predict CPU, memory, and pod-count limit breaches 7-30 days ahead to prevent Kubernetes cluster saturation before it happens.",searchable:!0}},{kind:"MdxPage",name:"cpu-utilization-analysis",route:"/features/cpu-utilization-analysis",frontMatter:{title:"CPU Utilization Analysis â Optimize Workload Performance | Wave",description:"Categorize Kubernetes workloads by CPU usage bands to surface under-utilization and hotspots, guiding right-sizing and performance tuning.",searchable:!0}},{kind:"MdxPage",name:"idle-node-detection",route:"/features/idle-node-detection",frontMatter:{title:"Idle Node Detection â Reduce Infrastructure Waste | Wave",description:"Find Kubernetes nodes running only DaemonSet pods with no application workloads and flag them for removal to cut infrastructure costs.",searchable:!0}},{kind:"MdxPage",name:"index",route:"/features",frontMatter:{title:"Features â Wave Kubernetes Automation Platform",description:"Explore Wave's Kubernetes Day 2 automation featuresâscaling, sizing, traffic control, storage, and predictive insightsâorganized by category.",searchable:!0}},{kind:"MdxPage",name:"karpenter-dashboard",route:"/features/karpenter-dashboard",frontMatter:{title:"Karpenter Dashboard",description:"Real-time Karpenter node monitoring with cost tracking, disruption detection, and per-NodePool analytics"}},{kind:"MdxPage",name:"karpenter-node-warmup",route:"/features/karpenter-node-warmup",frontMatter:{title:"Node Warmup",description:"Proactive node pre-provisioning with parallel image pre-caching â reduce first pod startup from 31s to 3s (10x faster)"}},{kind:"MdxPage",name:"karpenter-spot-workload-placement",route:"/features/karpenter-spot-workload-placement",frontMatter:{title:"Spot Workload Placement",description:"Zero-touch spot/on-demand splitting via webhook injection â spot instances cost 60-90% less than on-demand, with granular per-deployment c
1ontrol"}},{kind:"MdxPage",name:"memory-leak-detection",route:"/features/memory-leak-detection",frontMatter:{title:"Memory Leak Detection â Proactive OOM Prevention for Kubernetes | Wave",description:"Automatically detect memory leak patterns before OOM failures, enabling planned responses instead of emergency restarts in Kubernetes.",searchable:!0}},{kind:"MdxPage",name:"min-max-recommendation",route:"/features/min-max-recommendation",frontMatter:{title:"Min/Max Recommendation â Data-Driven HPA Boundaries | Wave",description:"Data-driven HPA min/max boundary recommendations for optimal replica ranges, based on your workload's actual traffic patterns.",searchable:!0}},{kind:"MdxPage",name:"netfunnel-integration",route:"/features/netfunnel-integration",frontMatter:{title:"NetFUNNEL Integration â Virtual Waiting Room for Kubernetes | Wave",description:"Integrate NetFUNNEL's virtual waiting room with Wave to protect Kubernetes infrastructure during massive traffic surges and flash events.",searchable:!0}},{kind:"MdxPage",name:"pod-scheduling-delay-detection",route:"/features/pod-scheduling-delay-detection",frontMatter:{title:"Pod Scheduling Delay Detection â Prevent Bottlenecks | Wave",description:"Identify Kubernetes deployments hit by pod scheduling delays and analyze root causes before they turn into production bottlenecks.",searchable:!0}},{kind:"MdxPage",name:"programmable-api",route:"/features/programmable-api",frontMatter:{title:"Programmable API â Automate Kubernetes Day 2 Operations | Wave",description:"Full RESTful API access to every Wave featureâautomate Kubernetes Day 2 operations programmatically and integrate with your workflows.",searchable:!0}},{kind:"MdxPage",name:"pv-auto-expansion",route:"/features/pv-auto-expansion",frontMatter:{title:"PV Auto-Expansion â Automated Storage Scaling | Wave",description:"Automatically expand Kubernetes Persistent Volumes before they hit capacity, preventing disk-full outages without manual intervention.",searchable:!0}},{kind:"MdxPage",name:"pv-capacity-forecast",route:"/features/pv-capacity-forecast",frontMatter:{title:"PV Capacity Forecast â Predict Storage Capacity Issues | Wave",description:"Analyze storage growth trends to predict when Kubernetes Persistent Volumes will reach capacity, triggering timely auto-expansion.",searchable:!0}},{kind:"MdxPage",name:"pv-cleanup",route:"/features/pv-cleanup",frontMatter:{title:"PV Cleanup â Automated Storage Cleanup | Wave",description:"Automatically delete unused Kubernetes Persistent Volumes to reclaim storage capacity and reduce ongoing infrastructure costs.",searchable:!0}},{kind:"MdxPage",name:"realtime-resizing",route:"/features/realtime-resizing",frontMatter:{title:"Realtime Resizing â Automatic In-Place Pod Resizing | Wave",description:"Realtime Resizing is Wave's automatic apply pipeline for Smart Sizing recommendations â In-Place Pod Resize (no restart, no rollout, no downtime) or Manifest Patch, with per-container opt-in and VPA-style hysteresis.",searchable:!0}},{kind:"MdxPage",name:"smart-sizing",route:"/features/smart-sizing",frontMatter:{title:"Smart Sizing â In-Place Pod Resource Optimization | Wave",description:"Wave Smart Sizing continuously optimizes container CPU and memory using Kubernetes in-place resize â no pod restarts needed. Replaces VPA for production stateful workloads.",searchable:!0}},{kind:"MdxPage",name:"sso",route:"/features/sso",frontMatter:{title:"SSO (OIDC) â Federated Login for the Wave Console | Wave",description:"Wave 3.2.2 adds OIDC-based single sign-on for the Web Console with break-glass local admin. Works with Okta, Microsoft Entra ID (Azure AD), Google Workspace, Keycloak, and other standards-compliant OIDC providers.",searchable:!0}},{kind:"MdxPage",name:"unused-pv-detection",route:"/features/unused-pv-detection",frontMatter:{title:"Unused PV Detection â Optimize Storage Costs | Wave",description:"Identify orphaned Kubernetes Persistent Volumes and calculate wasted storage costs to target cleanup and optimize spend.",searchable:!0}},{kind:"MdxPage",name:"wave-flow",route:"/features/wave-flow",frontMatter:{title:"Wave Flow â Priority-Based Traffic Shaping | Wave",description:"Priority-based traffic shaping with WASM modules for Istio and Kong, protecting critical Kubernetes services during load spikes.",searchable:!0}}]},{kind:"MdxPage",name:"gpu",route:"/gpu",frontMatter:{title:"Wave GPU â see every GPU and every workload, then share the card | Wave",description:"Wave GPU makes GPUs and GPU workloads visible on the Kubernetes cluster you run today, then shares one card across several workloads with HAMi Enterprise from Dynamia. Measured on one NVIDIA A10G: six predictive models, three training jobs or two vLLM 8B services on a
1single card.",searchable:!0}},{kind:"MdxPage",name:"index",route:"/",frontMatter:{title:"Monitor, diagnose, optimize, control, report â the whole Kubernetes operations lifecycle | Wave",description:"Wave runs all five stages of the Kubernetes operations lifecycle in one console. It analyzes your cluster every day, finds the root cause, recommends the right configuration, then applies it automatically â filling the operational gaps Amazon EKS and OpenShift leave open.",searchable:!0}},{kind:"Folder",name:"japanese-blog",route:"/japanese-blog",children:[{kind:"MdxPage",name:"2025-01-13-why-kubernetes-automation-matters",route:"/japanese-blog/2025-01-13-why-kubernetes-automation-matters",frontMatter:{type:"posts",title:"ãªãKubernetesã®èªååãéè¦ãªã®ãï¼è¤éããç°¡ç´ åããçç£æ§ãåä¸ããã",date:"2025-01-13T00:00:00.000Z",author:"Hwansoo Kim",description:"ããªãã®ãã¼ã ã¯Kubernetesã®è¤éãã«å§åããã¦ãã¾ããï¼ã³ã³ããåãããã¢ããªã±ã¼ã·ã§ã³ãå¢ããã«ã¤ããå¤§è¦æ¨¡ãªKubernetesã®ç®¡çã¯å¤§ããªèª²é¡ã¨ãªã£ã¦ãã¾ããããã§ã¯ãèªååããªãå½¹ç«ã¤ã ãã§ãªããç¾ä»£ã®ã¯ã©ã¦ããã¤ãã£ãç°å¢ã«ã¨ã£ã¦ä¸å¯æ¬ ã§ãããã説æãã¾ãã",tags:["Kubernetes","èªåå","ã¯ã©ã¦ããã¤ãã£ã","DevOps"]}},{kind:"MdxPage",name:"2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More",route:"/japanese-blog/2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More",frontMatter:{type:"posts",title:"AIé§ååã¹ã±ã¼ãªã³ã° vs ã«ã¼ã«ãã¼ã¹ã¹ã±ã¼ãªã³ã°ï¼ã©ã¡ããã³ã¹ã忏ã«å¹æçãï¼",date:"2025-12-30",author:"Thomas Mathew",description:"ã«ã¼ã«ãã¼ã¹ã®Kubernetesãªã¼ãã¹ã±ã¼ãªã³ã°ã¯ãè¦æ¨¡ãæ¡å¤§ããã¨ç ´ç¶»ãã¾ããéçãªãããå¤ã§ã¯ãé²åãç¶ããæ°ç¾ã®ã¯ã¼ã¯ãã¼ãã«å¯¾å¿ã§ãã¾ãããAIé§ååã¹ã±ã¼ãªã³ã°ãæåãã¥ã¼ãã³ã°ãæé¤ããæå¤§40%ã®ã³ã¹ã忏ãå®ç¾ããæ¹æ³ããç´¹ä»ãã¾ãã",tags:["Kubernetes","Autoscaling","HPA","KEDA","FinOps","Cloud Cost Optimization","SRE","DevOps","Wave Autoscale","AI Ops"]}},{kind:"MdxPage",name:"2025-12-31-what-is-smart-sizing-for-smarter-clouds",route:"/japanese-blog/2025-12-31-what-is-smart-sizing-for-smarter-clouds",frontMatter:{type:"posts",title:"Smart Sizingã¨ã¯ï¼Rightsizingãè¶
ããã¹ãã¼ããªã¯ã©ã¦ãã¸ã®æ¬¡ã®ã¹ããã",date:"2025-12-31",author:"Thomas Mathew",description:"Kubernetesã¯ã©ã¹ã¿ã¼ã¯éå°ãªãªã½ã¼ã¹è¦æ±ã«ãã30ã40%ã®ãªã½ã¼ã¹ãç¡é§ã«ãã¦ãã¾ããæåRightsizingã¨vpaã®éçãå¦ã³ãSmart Sizingãããåªããã¡ããªã¯ã¹ã¨çµ±åã¹ã±ã¼ãªã³ã°ã§ã©ã®ããã«å®ç¨çãªæ¨å¥¨äºé
ãæä¾ããããã覧ãã ããã",tags:["Kubernetes","Autoscaling","HPA","VPA","FinOps","Cloud Cost Optimization","SRE","DevOps","Wave Autoscale","AI Ops","Rightsizing","Smart Sizing","Resource Optimization"]}},{kind:"MdxPage",name:"2026-01-20-wave-autoscale-works-with-your-existing-infrastructure",route:"/japanese-blog/2026-01-20-wave-autoscale-works-with-your-existing-infrastructure",frontMatter:{type:"posts",title:"Wave Autoscaleã¨ã¯ä½ãï¼ã¯ã¼ã¯ãã¼ã管ç vs ã¤ã³ãã©ç®¡çã®çè§£",date:"2026-01-20",author:"Wave Autoscale Team",description:"Wave Autoscaleãæ¢åã®Kubernetesã¤ã³ãã©å
ã§ã¯ã¼ã¯ãã¼ãæé©åã«ç¦ç¹ãå½ã¦ãæ¹æ³ã¨ãKarpenterãCluster Autoscalerãªã©ã®ãã¼ã«ãç½®ãæããã®ã§ã¯ãªãè£å®ããæ¹æ³ãå¦ã³ã¾ãã",tags:["Kubernetes","Autoscaling","Infrastructure","Workload Management","Karpenter","Cluster Autoscaler","Wave Autoscale","Cloud Native","DevOps","SRE","Resource Optimization"]}},{kind:"MdxPage",name:"2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa",route:"/japanese-blog/2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa",frontMatter:{type:"posts",title:"HPAãè¶
ããã¨ã³ã¿ã¼ãã©ã¤ãºKubernetesã¯ã¼ã¯ãã¼ã管çï¼ã¹ã±ã¼ãªã³ã°é
å»¶ã®è§£æ¶",date:"2026-01-30",author:"Thomas Mathew",description:"HPAã®é¾å¤ãã¼ã¹ã®ã¹ã±ã¼ãªã³ã°ãå®éã®ãã©ãã£ãã¯ãã¿ã¼ã³ã§å¤±æããçç±ã¨ãMLé§ååãªã¼ãã¹ã±ã¼ãªã³ã°ãã©ã®ããã«ã¹ã±ã¼ãªã³ã°é
å»¶ãæé¤ããã¨ã©ã¼çã38%ããã»ã¼ã¼ãã«åæ¸ããæå¤§40%ã®ã³ã¹ã忏ãå®ç¾ãããã解説ãã¾ãã",tags:["Kubernetes","Autoscaling","HPA","Wave Autoscale","Performance","SRE","DevOps","Cloud Cost Optimization","Machine Learning","Workload Management","Scaling","Enterprise Kubernetes"]}},{kind:"MdxPage",name:"2026-03-11-rethinking-kubernetes-observability",route:"/japanese-blog/2026-03-11-rethinking-kubernetes-observability",frontMatter:{type:"posts",title:"Kubernetes Observabilityãåèãã",date:"2026-03-11",author:"Thomas Mathew",description:"ã¨ã³ã¸ãã¢ãªã³ã°ãã¼ã ã¯Kubernetesã¡ããªã¯ã¹ã®æååæã«å
¨ä½æ¥æéã®30ã100%ãè²»ããã¦ãã¾ããWave Autoscaleã¯ãã®éç¨è² æ
ãèªååãããã¤ã³ããªã¸ã§ã³ã¹ã¸ã¨å¤æãã¾ãï¼7ã30æ¥åã®äºåè¦åãèªåçãªroot causeåæãããã¦40ã60%ã®ãªã½ã¼ã¹ç¡é§ãç¹å®ããç¶ç¶çãªæé©åã",tags:["Kubernetes","Observability","FinOps","ãã©ãããã©ã¼ã ã¨ã³ã¸ãã¢ãªã³ã°","SRE","Wave Autoscale","ãªã½ã¼ã¹æé©å","ãã£ãã·ãã£ãã©ã³ãã³ã°"]}},{kind:"MdxPage",name:"2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy",route:"/japanese-blog/2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy",frontMatter:{type:"posts",title:"ãã©ãã£ãã¯ã·ã§ã¼ãã³ã°ãKubernetesã¹ã±ã¼ãªã³ã°æ¦ç¥ã«æ¬ ãã¦ããçç±",date:"2026-03-12",author:"Thomas Mathew",description:"NetflixãUberãGoogleã¯ããããåªå
度ãã¼ã¹ã®è² è·ã·ã§ãã£ã³ã°ã使ç¨ãã¦ããã¬ãã·ã£ã¼ä¸ã§éè¦ãªãµã¼ãã¹ãä¿è·ãã¦ãã¾ããKubernetesã¯ã©ã¹ã¿ã¼ã«åããã¿ã¼ã³ãå¿
è¦ãªçç±ã¨å®è£
æ¹æ³ããç´¹ä»ãã¾ãã",tags:["Kubernetes","ãã©ãã£ãã¯ç®¡ç","è² è·ã·ã§ãã£ã³ã°","ãµã¼ãã¹ã¡ãã·ã¥","ãã©ãããã©ã¼ã ã¨ã³ã¸ãã¢ãªã³ã°","SRE","Wave Autoscale","Wave Flow","Istio","ã¨ã³ã¿ã¼ãã©ã¤ãºKubernetes"]}},{kind:"MdxPage",name:"2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter",route:"/japanese-blog/2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter",frontMatter:{type:"posts",title:"AIãã¤ã
1ã£ãã³ã³ããã¼ã«ãã¬ã¼ã³ã¸ï¼Wave Autoscaleã®æ¬¡ãªãç« ",date:"2026-03-13",author:"Wave Autoscale ãã¼ã ",description:"Wave Autoscaleãã¹ã±ã¼ãªã³ã°ã¨ã³ã¸ã³ãããæçåããããã¼ã«ãã§ã¼ã³ãåä¸ã®èªç¶è¨èªã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ç½®ãæããKubernetesåãAIãã¤ãã£ãã³ã³ããã¼ã«ãã¬ã¼ã³ã¸ã¨é²åããéç¨ããç´¹ä»ãã¾ãã",tags:["Kubernetes","AI Agent","Wave Autoscale","MCP","Agentic Operations"]}},{kind:"MdxPage",name:"2026-03-23-wave-autoscale-3-1-0",route:"/japanese-blog/2026-03-23-wave-autoscale-3-1-0",frontMatter:{type:"posts",title:"Wave Autoscale 3.1.0: Karpenterãå®å
¨ã«å¶å¾¡ãããã¼ãã¬ãã«ã¤ã³ããªã¸ã§ã³ã¹",date:"2026-03-23",author:"Hwansoo Kim",description:"Wave Autoscale 3.1.0ã¯ãAmazon EKSã«Karpenterã®å®å
¨ãªå¯è¦æ§ã¨å¶å¾¡ãæä¾ãã¾ã â ãªã¢ã«ã¿ã¤ã ããã·ã¥ãã¼ããã¤ã¡ã¼ã¸ããªãã£ãã·ã¥ä»ãã®ã¤ã³ããªã¸ã§ã³ããªãã¼ãã¦ã©ã¼ã ã¢ãããWebhookçµç±ã®ã¼ãã¿ããSpotã¯ã¼ã¯ãã¼ãé
ç½®ãããã¦2åé«éãªgRPCæè¼Metrics Agentã",tags:["Kubernetes","Amazon EKS","Karpenter","Spot Instances","SRE","Cloud Native","DevOps","Wave Autoscale","Node Management","gRPC"]}},{kind:"MdxPage",name:"2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support",route:"/japanese-blog/2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support",frontMatter:{type:"posts",title:"Wave Autoscale 3.2.0: GPU 対å¿ãªã¼ãã¹ã±ã¼ãªã³ã°ã¨ OpenShift ãµãã¼ã",date:"2026-04-29",author:"Hwansoo Kim",description:"Wave Autoscale 3.2.0 ã¯ãDCGM ãã¼ã¹ã®ã¡ããªã¯ã¹åéãã³ã¹ã追跡ãç¡é§æ¤åºãåãã GPU 対å¿ãªã¼ãã¹ã±ã¼ãªã³ã°ãæä¾ãã¾ããããã㦠DeploymentConfig ãµãã¼ã㨠Red Hat èªå® Helm ãã£ã¼ããå«ã OpenShift ã®ãã¡ã¼ã¹ãã¯ã©ã¹å¯¾å¿ã追å ããã¾ãã",tags:["Kubernetes","Autoscaling","GPU","NVIDIA DCGM","OpenShift","FinOps","Cost Optimization","Wave Autoscale","Platform Engineering","Helm"]}},{kind:"MdxPage",name:"2026-05-21-wave-autoscale-3-2-2",route:"/japanese-blog/2026-05-21-wave-autoscale-3-2-2",frontMatter:{type:"posts",title:"Wave Autoscale 3.2.2: SSOãRealtime Smart SizingãWave Diagnosis",date:"2026-05-21",author:"Hwansoo Kim",description:"Wave Autoscale 3.2.2 㯠in-place pod resize ã§ Smart Sizing æ¨å¥¨å¤ã¨ã¯ã©ã¹ã¿ã®éã®ã«ã¼ããèªåã§éããWeb Console ã« OIDC single sign-on ã追å ãã診æé åã failure-first ãªæ
å ±ã¢ã¼ããã¯ãã£ã«åæ§æãã¾ãã",tags:["Kubernetes","Autoscaling","Smart Sizing","In-Place Pod Resize","SSO","OIDC","Wave Diagnosis","Wave Autoscale","Platform Engineering","SRE"]}},{kind:"Meta",data:{index:{title:"ããã°",type:"page",display:"hidden"},"2026-05-21-wave-autoscale-3-2-2":{title:"Wave Autoscale 3.2.2: SSOãRealtime Smart SizingãWave Diagnosis"},"2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support":{title:"Wave Autoscale 3.2.0: GPU 対å¿ãªã¼ãã¹ã±ã¼ãªã³ã°ã¨ OpenShift ãµãã¼ã"},"2026-03-23-wave-autoscale-3-1-0":{title:"Wave Autoscale 3.1.0: Karpenterãå®å
¨ã«å¶å¾¡ãããã¼ãã¬ãã«ã¤ã³ããªã¸ã§ã³ã¹"},"2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter":{title:"AIãã¤ãã£ãã³ã³ããã¼ã«ãã¬ã¼ã³ã¸ï¼Wave Autoscaleã®æ¬¡ãªãç« "},"2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy":{title:"ãã©ãã£ãã¯ã·ã§ã¼ãã³ã°ãKubernetesã¹ã±ã¼ãªã³ã°æ¦ç¥ã«æ¬ ãã¦ããçç±"},"2026-03-11-rethinking-kubernetes-observability":{title:"Kubernetes Observabilityãåèãã"},"2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa":{title:"HPAãè¶
ããã¨ã³ã¿ã¼ãã©ã¤ãºKubernetesã¯ã¼ã¯ãã¼ã管çï¼ã¹ã±ã¼ãªã³ã°é
å»¶ã®è§£æ¶"},"2026-01-20-wave-autoscale-works-with-your-existing-infrastructure":{title:"ã¯ã¼ã¯ãã¼ã管ç vs ã¤ã³ãã©ç®¡çã®çè§£"},"2025-12-31-what-is-smart-sizing-for-smarter-clouds":{title:"Smart Sizingã¨ã¯ï¼Rightsizingãè¶
ããã¹ãã¼ããªã¯ã©ã¦ãã¸ã®æ¬¡ã®ã¹ããã"},"2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More":{title:"AIé§ååã¹ã±ã¼ãªã³ã° vs ã«ã¼ã«ãã¼ã¹ã¹ã±ã¼ãªã³ã°ï¼ã©ã¡ããã³ã¹ã忏ã«å¹æçãï¼"},"2025-01-13-why-kubernetes-automation-matters":{title:"ãªãKubernetesã®èªååãéè¦ãªã®ãï¼è¤éããç°¡ç´ åããçç£æ§ãåä¸ããã"}}}]},{kind:"Folder",name:"korean-blog",route:"/korean-blog",children:[{kind:"MdxPage",name:"2025-01-13-why-kubernetes-automation-matters",route:"/korean-blog/2025-01-13-why-kubernetes-automation-matters",frontMatter:{type:"posts",title:"ì¿ ë²ë¤í°ì¤ ìëíì ì¤ìì±: ë³µì¡ì± ë¨ìí, ìì°ì± í¥ì",date:"2025-01-13T00:00:00.000Z",author:"Hwansoo Kim",description:"íì´ ì¿ ë²ë¤í°ì¤ì ë³µì¡ì±ì ìëëê³ ììµëê¹? 컨í
ì´ëíë ì í리ì¼ì´ì
ì´ ì¦ê°í¨ì ë°ë¼ ëê·ëª¨ë¡ ì¿ ë²ë¤í°ì¤ë¥¼ ê´ë¦¬íë ê²ì ìì²ë ëì ê³¼ì ê° ëììµëë¤. ìëíê° ë¨ìí ëìì´ ëë ê²ì´ ìëë¼ íë í´ë¼ì°ë ë¤ì´í°ë¸ íê²½ìì íìì ì¸ ì´ì 를 ììë³´ì¸ì.",tags:["Kubernetes","Automation","Cloud-Native","DevOps"]}},{kind:"MdxPage",name:"2025-02-12-hpa-is-not-enough-for-your-kubernetes-operation",route:"/korean-blog/2025-02-12-hpa-is-not-enough-for-your-kubernetes-operation",frontMatter:{type:"posts",title:"HPAë§ì¼ë¡ë Kubernetes ì´ìì´ ë¶ì¡±í ì´ì ",date:"2025-02-12T00:00:00.000Z",author:"Hwansoo Kim",description:"HPAë§ì¼ë¡ë Kubernetes ì¤ì¼ì¼ë§ì´ ë¶ì¡±í©ëë¤! Horizontal Pod Autoscaler(HPA)ì ë린 ë°ì ìë, í¸ëí½ ì측 íê³, ë¹ì© ë¹í¨ì¨ì±ì 극복íê³ , Wave Autoscaleì´ AIë¡ ì´ë»ê² ì¤ì¼ì¼ë§ì ìµì ííëì§ ììë³´ì¸ì. \uD83D\uDE80",tags:["Kubernetes","Automation","Cloud-Native","DevOps","HPA","VPA"]}},{kind:"MdxPage",name:"2025-04-04-what-llms-can-do-for-sres-in-cloud-native-infrastru
1cture",route:"/korean-blog/2025-04-04-what-llms-can-do-for-sres-in-cloud-native-infrastructure",frontMatter:{type:"posts",title:"í´ë¼ì°ë ë¤ì´í°ë¸ ì¸íë¼ìì LLMì´ SRE를 ìí´ í ì ìë ì¼",date:"2025-04-04T00:00:00.000Z",author:"Hwansoo Kim",description:"ëê·ëª¨ ì¸ì´ 모ë¸(LLM)ì´ í´ë¼ì°ë ë¤ì´í°ë¸ ì´ì ë°©ìì ì´ë»ê² ë³íìí¤ê³ ìëì§ ì´í´ë³´ì¸ì. SREì ìí¬íë¡ì°ë¥¼ ë³´ìíê³ , AI ê¸°ë° ìëí를 íµí´ ë³µì¡í Kubernetes ì¸íë¼ë¥¼ ìì ì¸ìì¼ë¡ë ì´ìí ì ìëë¡ ì§ìí©ëë¤.",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","AI in DevOps","Large Language Models","LLM","Kubernetes Scaling","Kubernetes Automation","AI Ops","Machine Learning","DevOps Tools","Wave Autoscale","Site Reliability Engineering","Pod Recovery","Smart Sizing","Horizontal Scaling","Vertical Scaling","Cloud Infrastructure","CNCF"]}},{kind:"MdxPage",name:"2025-04-23-wave-autoscale-2-4-0",route:"/korean-blog/2025-04-23-wave-autoscale-2-4-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.4.0",date:"2025-04-23",author:"Hwansoo Kim",description:"Wave Autoscale 2.4.0",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","AI in DevOps","Large Language Models","LLM","Kubernetes Scaling","Kubernetes Automation","AI Ops","Machine Learning","DevOps Tools","Wave Autoscale","Site Reliability Engineering","Pod Recovery","Smart Sizing","Horizontal Scaling","Vertical Scaling","Cloud Infrastructure","CNCF"]}},{kind:"MdxPage",name:"2025-05-13-wave-autoscale-2-5-0",route:"/korean-blog/2025-05-13-wave-autoscale-2-5-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.5.0",date:"2025-05-13",author:"Hwansoo Kim",description:"Wave Autoscale 2.5.0",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","Kubernetes Monitoring","AI in DevOps","Kubernetes Scaling","Kubernetes Automation","DevOps Tools","Wave Autoscale","Cluster Report","HPA Migration"]}},{kind:"MdxPage",name:"2025-06-24-wave-autoscale-2-6-0",route:"/korean-blog/2025-06-24-wave-autoscale-2-6-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.6.0",date:"2025-06-24",author:"Hwansoo Kim",description:"Wave Autoscale 2.6.0",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","Kubernetes Monitoring","AI in DevOps","Kubernetes Scaling","Kubernetes Automation","DevOps Tools","Wave Autoscale","Istio","Autopilot","WASM"]}},{kind:"MdxPage",name:"2025-07-21-wave-autoscale-2-7-0",route:"/korean-blog/2025-07-21-wave-autoscale-2-7-0",frontMatter:{type:"posts",title:"Wave Autoscale 2.7.0",date:"2025-07-21",author:"Hwansoo Kim",description:"Wave Autoscale 2.7.0 adds NetFUNNEL SaaS integration, Prometheus export, OpenShift fix, and Fargate support.",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","DevOps Tools","Wave Autoscale","NetFUNNEL","Prometheus","Grafana","AWS Fargate","OpenShift"]}},{kind:"MdxPage",name:"2025-11-28-wave-autoscale-3-0",route:"/korean-blog/2025-11-28-wave-autoscale-3-0",frontMatter:{type:"posts",title:"Wave Autoscale 3.0",date:"2025-11-28",author:"Hwansoo Kim",description:"Wave Autoscale 3.0ì ì¤í ì¤ì¼ì¼ë§ ë구ìì ìì í Kubernetes Day 2 ì´ì íë«í¼ì¼ë¡ ì§ííìµëë¤.",tags:["Kubernetes","SRE","Cloud Native","Infrastructure Automation","DevOps Tools","Wave Autoscale","NetFUNNEL","Prometheus","Grafana","AWS Fargate","OpenShift"]}},{kind:"MdxPage",name:"2025-12-16-8-hidden-costs-in-kubernetes-clusters-and-how-to-eliminate-them",route:"/korean-blog/2025-12-16-8-hidden-costs-in-kubernetes-clusters-and-how-to-eliminate-them",frontMatter:{type:"posts",title:"Kubernetes í´ë¬ì¤í°ì ì¨ì ë¹ì© 8ê°ì§ì ë¹ì©ì ìµì ííë ë°©ë²",date:"2025-12-16",author:"Thomas Mathew",description:"Kubernetes ìì°ì ì ìíë 8ê°ì§ ì¨ì ë¹ì© ìì¸âê³¼ëí íë¡ë¹ì ë, ë°©ì¹ë ì¤í 리ì§, ë°ìí ì¤ì¼ì¼ë§ ì§ì° ë±âê³¼ ì§ë¥í ìëíë¡ ì´ë¥¼ í´ê²°íë ë°©ë²ì ììë´
ëë¤.",tags:["Kubernetes","FinOps","í´ë¼ì°ë ë¹ì© ìµì í","SRE","Cloud Native","DevOps","Wave Autoscale","Autoscaling","리ìì¤ ê´ë¦¬"]}},{kind:"MdxPage",name:"2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More",route:"/korean-blog/2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More",frontMatter:{type:"posts",title:"AI ê¸°ë° ì¤ì¼ì¼ë§ vs. ê·ì¹ ê¸°ë° ì¤ì¼ì¼ë§, ë¹ì© ì ê°ì ë í¨ê³¼ì ì¸ ì íì?",date:"2025-12-30",author:"Thomas Mathew",description:"ê·ì¹ ê¸°ë° Kubernetes ìë íì¥ì ê·ëª¨ê° 커ì§ë©´ íê³ì ë¶ëªíë©°, ê³ ì ìê³ê°ì ìë°± ê°ì ì§ííë ìí¬ë¡ë를 ë°ë¼ê° ì ììµëë¤. AI ê¸°ë° ì¤ì¼ì¼ë§ì´ ì´ë»ê² ìë ì¡°ì ì ì ê±°íê³ ìµë 40%ì ë¹ì© ì ê°ì ì ê³µíëì§ ììë³´ì¸ì.",tags:["Kubernetes","Autoscaling","HPA","KEDA","FinOps","Cloud Cost Optimization","SRE","DevOps","Wave Autoscale","AI Ops"]}},{kind:"MdxPage",name:"2025-12-31-what-is-smart-sizing-for-smarter-clouds",route:"/korean-blog/2025-12-31-what-is-smart-sizing-for-smarter-clouds",frontMatter:{type:"posts",title:"Smart Sizingì´ë 무ìì¸ê°: Rightsizingì ëì´ì ë ì¤ë§í¸í í´ë¼ì°ë",date:"2025-12-31",author:"Thomas Mathew",description:"Kubernetes í´ë¬ì¤í°ë ê³¼ëí 리ìì¤ ìì²ì¼ë¡ ì¸í´ 30-40%ì 리ìì¤ë¥¼ ëë¹í©ëë¤. ìë Rightsizingê³¼ VPAì íê³ë¥¼ ììë³´ê³ , Smart Sizingì´ ì´ë»ê² ë ëì ë©í¸ë¦ê³¼ íµí© ì¤ì¼ì¼ë§ì¼ë¡ ì¤í ê°ë¥í ê¶ì¥ ì¬íì ì ê³µíëì§ ììë³´ì¸ì.",tags:["Kubernetes","Autoscaling","HPA","VPA","FinOps","Cloud Cost Optimization","SRE","DevOps","Wave Autoscale","AI Ops","Rightsizing","Smart Sizing","Resource Optimization"]}},{kind:"MdxPage",name:"2026-01-20-wave-autoscale-works-with-your-existing-infrastru
1cture",route:"/korean-blog/2026-01-20-wave-autoscale-works-with-your-existing-infrastructure",frontMatter:{type:"posts",title:"Wave Autoscaleì´ë 무ìì¸ê°: ìí¬ë¡ë ê´ë¦¬ vs ì¸íë¼ ê´ë¦¬ ì´í´í기",date:"2026-01-20",author:"Wave Autoscale Team",description:"Wave Autoscaleì´ ê¸°ì¡´ Kubernetes ì¸íë¼ìì ìí¬ë¡ë ìµì íì ì§ì¤íë ë°©ë²ê³¼ Karpenter, Cluster Autoscaler ê°ì ë구를 ëì²´íë ê²ì´ ìëë¼ ë³´ìíë ë°©ë²ì ììë³´ì¸ì.",tags:["Kubernetes","Autoscaling","Infrastructure","Workload Management","Karpenter","Cluster Autoscaler","Wave Autoscale","Cloud Native","DevOps","SRE","Resource Optimization"]}},{kind:"MdxPage",name:"2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa",route:"/korean-blog/2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa",frontMatter:{type:"posts",title:"HPA를 ëì´ì ìí°íë¼ì´ì¦ Kubernetes ìí¬ë¡ë ê´ë¦¬ ë°©ë²: ì¤ì¼ì¼ë§ ì§ì° ì ê±°",date:"2026-01-30",author:"Thomas Mathew",description:"HPAì ìê³ê° ê¸°ë° ì¤ì¼ì¼ë§ì´ ì¤ì í¸ëí½ í¨í´ìì ì¤í¨íë ì´ì ì ML ê¸°ë° ì¤í ì¤ì¼ì¼ë§ì´ ì´ë»ê² ì¤ì¼ì¼ë§ ì§ì°ì ì ê±°íê³ ìë¬ì¨ì 38%ìì ê±°ì 0%ë¡ ë®ì¶ë©° ë¹ì©ì ìµë 40%ê¹ì§ ì ê°íëì§ ììë³´ì¸ì.",tags:["Kubernetes","Autoscaling","HPA","Wave Autoscale","Performance","SRE","DevOps","Cloud Cost Optimization","Machine Learning","Workload Management","Scaling","Enterprise Kubernetes"]}},{kind:"MdxPage",name:"2026-03-11-rethinking-kubernetes-observability",route:"/korean-blog/2026-03-11-rethinking-kubernetes-observability",frontMatter:{type:"posts",title:"Kubernetes Observability를 ë¤ì ìê°íë¤",date:"2026-03-11",author:"Thomas Mathew",description:"ìì§ëì´ë§ íì Kubernetes metrics를 ë¶ìíë ìë ë°ë³µ ìì
ì ì ì²´ ìê°ì 30%~100%를 ì¬ì©í©ëë¤. Wave Autoscaleì ì´ ì´ì ë¶ë´ì ìëíë ì¸í
리ì ì¤ë¡ ì íí©ëë¤: 7~30ì¼ ì ì¬ì ê²½ê³ , ìë root cause ë¶ì, ê·¸ë¦¬ê³ 40~60%ì 리ìì¤ ëë¹ë¥¼ ìë³íë ì§ìì ì¸ ìµì í.",tags:["Kubernetes","Observability","FinOps","íë«í¼ ìì§ëì´ë§","SRE","Wave Autoscale","리ìì¤ ìµì í","ì©ë ê³í"]}},{kind:"MdxPage",name:"2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy",route:"/korean-blog/2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy",frontMatter:{type:"posts",title:"í¸ëí½ ì
°ì´íì´ Kubernetes ì¤ì¼ì¼ë§ ì ëµìì ë¹ ì§ ì´ì ",date:"2026-03-12",author:"Thomas Mathew",description:"Netflix, Uber, Googleì 모ë ì°ì ìì ê¸°ë° ë¶í ì°¨ë¨ì ì¬ì©í´ ìë° ìí©ìì íµì¬ ìë¹ì¤ë¥¼ ë³´í¸í©ëë¤. Kubernetes í´ë¬ì¤í°ì ëì¼í í¨í´ì´ íìí ì´ì ì 구í ë°©ë²ì ììë³´ì¸ì.",tags:["Kubernetes","í¸ëí½ ê´ë¦¬","ë¶í ì°¨ë¨","ìë¹ì¤ ë©ì","íë«í¼ ìì§ëì´ë§","SRE","Wave Autoscale","Wave Flow","Istio","ìí°íë¼ì´ì¦ Kubernetes"]}},{kind:"MdxPage",name:"2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter",route:"/korean-blog/2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter",frontMatter:{type:"posts",title:"AI ë¤ì´í°ë¸ 컨í¸ë¡¤ íë ì¸ì í¥íì¬: Wave Autoscaleì ë¤ì ì±í°",date:"2026-03-13",author:"Wave Autoscale í",description:"Wave Autoscaleì´ ì¤ì¼ì¼ë§ ìì§ìì Kubernetes를 ìí AI ë¤ì´í°ë¸ 컨í¸ë¡¤ íë ì¸ì¼ë¡ ì§ííë ê³¼ì â ë¶ì°ë ë구 ì²´ì¸ì íëì ìì°ì´ ì¸í°íì´ì¤ë¡ íµí©í©ëë¤.",tags:["Kubernetes","AI Agent","Wave Autoscale","MCP","Agentic Operations"]}},{kind:"MdxPage",name:"2026-03-23-wave-autoscale-3-1-0",route:"/korean-blog/2026-03-23-wave-autoscale-3-1-0",frontMatter:{type:"posts",title:"Wave Autoscale 3.1.0: Karpenter를 ìë²½íê² ì ì´íë ë
¸ë ë 벨 ì¸í
리ì ì¤",date:"2026-03-23",author:"Hwansoo Kim",description:"Wave Autoscale 3.1.0ì Amazon EKSì Karpenterì ìì í ê°ìì±ê³¼ ì ì´ë¥¼ ì ê³µí©ëë¤ â ì¤ìê° ëìë³´ë, ì´ë¯¸ì§ ì¬ì ìºì±ì´ í¬í¨ë ì§ë¥í ë
¸ë ìë°ì
, ì¹í
기ë°ì ì ë¡í°ì¹ Spot ìí¬ë¡ë ë°°ì¹, ê·¸ë¦¬ê³ 2ë°° ë¹ ë¥¸ gRPC ê¸°ë° Metrics Agent.",tags:["Kubernetes","Amazon EKS","Karpe
1nter","Spot Instances","SRE","Cloud Native","DevOps","Wave Autoscale","Node Management","gRPC"]}},{kind:"MdxPage",name:"2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support",route:"/korean-blog/2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support",frontMatter:{type:"posts",title:"Wave Autoscale 3.2.0: GPU ì¸ì§í ì¤í ì¤ì¼ì¼ë§ê³¼ OpenShift ì§ì",date:"2026-04-29",author:"Hwansoo Kim",description:"Wave Autoscale 3.2.0ì DCGM ê¸°ë° ë©í¸ë¦ ìì§, ë¹ì© ì¶ì , ëë¹ ê°ì§ë¥¼ íµí´ GPU ì¸ì§í ì¤í ì¤ì¼ì¼ë§ì ì ê³µí©ëë¤. ëìì DeploymentConfig ì§ìê³¼ Red Hat ì¸ì¦ Helm ì°¨í¸ë¥¼ í¬í¨í OpenShift í(first-class) ì§ìì´ ì¶ê°ë©ëë¤.",tags:["Kubernetes","Autoscaling","GPU","NVIDIA DCGM","OpenShift","FinOps","Cost Optimization","Wave Autoscale","Platform Engineering","Helm"]}},{kind:"MdxPage",name:"2026-05-21-wave-autoscale-3-2-2",route:"/korean-blog/2026-05-21-wave-autoscale-3-2-2",frontMatter:{type:"posts",title:"Wave Autoscale 3.2.2: SSO, Realtime Smart Sizing, Wave Diagnosis",date:"2026-05-21",author:"Hwansoo Kim",description:"Wave Autoscale 3.2.2 ë in-place pod resize ë¡ Smart Sizing ê¶ì¥ê°ê³¼ í´ë¬ì¤í° ì¬ì´ì 루í를 ìëì¼ë¡ ë«ê³ , Web Console ì OIDC single sign-on ì ì¶ê°íë©°, ì§ë¨ ììì failure-first ì ë³´ êµ¬ì¡°ë¡ ì¬êµ¬ì±í©ëë¤.",tags:["Kubernetes","Autoscaling","Smart Sizing","In-Place Pod Resize","SSO","OIDC","Wave Diagnosis","Wave Autoscale","Platform Engineering","SRE"]}},{kind:"Meta",data:{index:{title:"ë¸ë¡ê·¸",type:"page",display:"hidden"},"2026-05-21-wave-autoscale-3-2-2":{title:"Wave Autoscale 3.2.2: SSO, Realtime Smart Sizing, Wave Diagnosis"},"2026-04-29-wave-autoscale-3-2-0-gpu-aware-autoscaling-and-openshift-support":{title:"Wave Autoscale 3.2.0: GPU ì¸ì§í ì¤í ì¤ì¼ì¼ë§ê³¼ OpenShift ì§ì"},"2026-03-23-wave-autoscale-3-1-0":{title:"Wave Autoscale 3.1.0: Karpenter를 ìë²½íê² ì ì´íë ë
¸ë ë 벨 ì¸í
리ì ì¤"},"2026-03-13-toward-an-ai-native-control-plane-wave-autoscales-next-chapter":{title:"AI ë¤ì´í°ë¸ 컨í¸ë¡¤ íë ì¸ì í¥íì¬: Wave Autoscaleì ë¤ì ì±í°"},"2026-03-12-why-traffic-shaping-is-the-missing-piece-in-your-kubernetes-scaling-strategy":{title:"í¸ëí½ ì
°ì´íì´ Kubernetes ì¤ì¼ì¼ë§ ì ëµìì ë¹ ì§ ì´ì "},"2026-03-11-rethinking-kubernetes-observability":{title:"Kubernetes Observability를 ë¤ì ìê°íë¤"},"2026-01-30-how-to-manage-enterprise-kubernetes-workloads-beyond-hpa":{title:"HPA를 ëì´ì ìí°íë¼ì´ì¦ Kubernetes ìí¬ë¡ë ê´ë¦¬ ë°©ë²: ì¤ì¼ì¼ë§ ì§ì° ì ê±°"},"2026-01-20-wave-autoscale-works-with-your-existing-infrastructure":{title:"Wave Autoscaleì 기존 ì¸íë¼ì ìë²½íê² ì°ëë©ëë¤: ìí¬ë¡ë ê´ë¦¬ vs ì¸íë¼ ê´ë¦¬ì ì´í´"},"2025-12-31-what-is-smart-sizing-for-smarter-clouds":{title:"Smart Sizingì´ë 무ìì¸ê°: Rightsizingì ëì´ì ë ì¤ë§í¸í í´ë¼ì°ë"},"2025-12-30-AI-driven-vs-Rules-based-Scaling-What-Saves-More":{title:"AI ê¸°ë° ì¤ì¼ì¼ë§ vs. ê·ì¹ ê¸°ë° ì¤ì¼ì¼ë§, ë¹ì© ì ê°ì ë í¨ê³¼ì ì¸ ì íì?"},"2025-12-16-8-hidden-costs-in-kubernetes-clusters-and-how-to-eliminate-them":{title:"Kubernetes í´ë¬ì¤í°ì ì¨ì ë¹ì© 8ê°ì§ì ë¹ì©ì ìµì ííë ë°©ë²"},"2025-11-28-wave-autoscale-3-0":{title:"Wave Autoscale 3.0 ì
ë°ì´í¸"},"2025-07-21-wave-autoscale-2-7-0":{title:"Wave Autoscale 2.7.0 ì
ë°ì´í¸"},"2025-06-24-wave-autoscale-2-6-0":{title:"Wave Autoscale 2.6.0 ì
ë°ì´í¸"},"2025-05-13-wave-autoscale-2-5-0":{title:"Wave Autoscale 2.5.0 ì
ë°ì´í¸"},"2025-04-23-wave-autoscale-2-4-0":{title:"Wave Autoscale 2.4.0 ì
ë°ì´í¸"},"2025-04-04-what-llms-can-do-for-sres-in-cloud-native-infrastructure":{title:"í´ë¼ì°ë ë¤ì´í°ë¸ ì¸íë¼ìì LLMì´ SRE를 ìí´ í ì ìë ì¼"},"2025-02-12-hpa-is-not-enough-for-your-kubernetes-operation":{title:"HPAë§ì¼ë¡ë Kubernetes ì´ìì´ ë¶ì¡±í ì´ì "},"2025-01-13-why-kubernetes-automation-matters":{title:"ì Kubernetes ìëíê° ì¤ìíê°"}}}]},{kind:"Folder",name:"korean-docs",route:"/korean-docs",children:[{kind:"Meta",data:{"--- ê°ì":{title:"ê°ì",type:"separator"},introduction:{title:"ìê°",theme:{sidebar:!0,toc:!0}},"wave-vs-hpa-vpa-prometheus":{title:"Wave vs HPA, VPA, Prometheus",theme:{sidebar:!0,toc:!0}},architecture:{title:"ìí¤í
ì²",theme:{sidebar:!0,toc:!0}},"--- ììí기":{title:"ììí기",type:"separator"},"important-before-you-begin":{title:"ììí기 ì ì",theme:{sidebar:!0,toc:!0}},"quick-start":{title:"ë¹ ë¥¸ ìì"},"installation-guides":{title:"ì¤ì¹ ê°ì´ë"},"helm-values-environment-variables":{title:"Helm ê° & íê²½ ë³ì",theme:{sidebar:!0,toc:!0}},"crd-mode":{title:"CRD 모ë",theme:{sidebar:!0,toc:!0}},"--- 기ë¥":{title:"기ë¥",type:"separator"},"wave-sizing":{title:"Wave Sizing",theme:{collapsed:!0}},"wave-autoscale":{title:"Wave Autoscale",theme:{collapsed:!0}}
1,"wave-diagnosis":{title:"Wave Diagnosis",theme:{collapsed:!0}},"wave-karpenter":{title:"Wave Karpenter",theme:{collapsed:!0}},"wave-flow":{title:"Wave Flow",theme:{collapsed:!0}},"additional-features":{title:"ì¶ê° 기ë¥",theme:{collapsed:!0}},administration:{title:"ê´ë¦¬",theme:{collapsed:!0}},reference:{title:"ë í¼ë°ì¤",theme:{collapsed:!0}}}},{kind:"Folder",name:"additional-features",route:"/korean-docs/additional-features",children:[{kind:"Meta",data:{"*":{theme:{sidebar:!0,toc:!0}},"pv-lifecycle":{title:"PV ë¼ì´íì¬ì´í´"},alerts:{title:"Alerts"}}},{kind:"Folder",name:"alerts",route:"/korean-docs/additional-features/alerts",children:[{kind:"Meta",data:{overview:{title:"ê°ì"},"getting-started":{title:"ììí기"},"how-it-works":{title:"ëì ë°©ì"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"crds",route:"/korean-docs/additional-features/alerts/crds",frontMatter:{title:"Alert CRD",description:"CRD Modeìì Alerts를 ì¤ì íë ë ê°ì§ CRD ì¢
ë¥ì ëí íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/korean-docs/additional-features/alerts/getting-started",frontMatter:{title:"Alerts ììí기"}},{kind:"MdxPage",name:"how-it-works",route:"/korean-docs/additional-features/alerts/how-it-works",frontMatter:{title:"Alerts ëì ë°©ì"}},{kind:"MdxPage",name:"overview",route:"/korean-docs/additional-features/alerts/overview",frontMatter:{title:"Alerts ê°ì"}}]},{kind:"Folder",name:"pv-lifecycle",route:"/korean-docs/additional-features/pv-lifecycle",children:[{kind:"Meta",data:{overview:{title:"ê°ì"},"getting-started":{title:"ììí기"},"auto-clean-up":{title:"ìë ì 리"},"auto-expansion":{title:"ìë íì¥"},"capacity-forecast":{title:"PV ì©ë ì측"},"unused-detection":{title:"미ì¬ì© PV ê°ì§"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"auto-clean-up",route:"/korean-docs/additional-features/pv-lifecycle/auto-clean-up",frontMatter:{title:"Auto Clean Up"}},{kind:"MdxPage",name:"auto-expansion",route:"/korean-docs/additional-features/pv-lifecycle/auto-expansion",frontMatter:{title:"Auto Expansion"}},{kind:"MdxPage",name:"capacity-forecast",route:"/korean-docs/additional-features/pv-lifecycle/capacity-forecast",frontMatter:{title:"PV Capacity Forecast"}},{kind:"MdxPage",name:"crds",route:"/korean-docs/additional-features/pv-lifecycle/crds",frontMatter:{title:"PV Lifecycle CRD",description:"CRD Modeìì PVC auto-expansionì ì¤ì íë WavePvcAutoExpansion CRD kindì íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/korean-docs/additional-features/pv-lifecycle/getting-started",frontMatter:{title:"PV Lifecycle Management ììí기"}},{kind:"MdxPage",name:"overview",route:"/korean-docs/additional-features/pv-lifecycle/overview",frontMatter:{title:"PV Lifecycle Management ê°ì"}},{kind:"MdxPage",name:"unused-detection",route:"/korean-docs/additional-features/pv-lifecycle/unused-detection",frontMatter:{title:"Unused PV Detection"}}]}]},{kind:"Folder",name:"administration",route:"/korean-docs/administration",children:[{kind:"Meta",data:{"sso-setup":{title:"SSO ì¤ì (OIDC)"}}},{kind:"MdxPage",name:"sso-setup",route:"/korean-docs/administration/sso-setup",frontMatter:{title:"SSO ì¤ì (OIDC)",description:"Wave ì¹ ì½ìì OpenID Connect(OIDC) ê¸°ë° ì±ê¸ ì¬ì¸ì¨ì ì¤ì í©ëë¤. Okta, Microsoft Entra ID(Azure AD), Google Workspace, Keycloak ë± íì¤ì ì¤ìíë 모ë OIDC ì ê³µì를 ì§ìí©ëë¤.",searchable:!0}}]},{kind:"MdxPage",name:"architecture",route:"/korean-docs/architecture",frontMatter:{title:"ìí¤í
ì²",description:"íì¥ì±ê³¼ ìì ì±, 기존 Kubernetes í경과ì 매ëë¬ì´ íµí©ì ìí Waveì í´ë¼ì°ë ë¤ì´í°ë¸ ìí¤í
ì²ì
ëë¤. ì¤ì ì§ì¤í StatefulSetê³¼ ë
¸ëë³ DaemonSetì ê±¸ì¹ ë¤ì¯ ê°ì§ íµì¬ êµ¬ì± ììë¡ ì´ë£¨ì´ì ¸ ììµëë¤."}},{kind:"MdxPage",name:"crd-mode",route:"/korean-docs/crd-mode",frontMatter:{title:"CRD Mode",description:"Waveì 모ë ì´ì ì¤ì ì Git ìì Kubernetes Custom Resourceë¡ ê´ë¦¬íë ë°©ë²ì
ëë¤. Console Modeì CRD Modeì ì°¨ì´, íì
1±í ë°©ë², 14ê°ì§ CRD kind, ë기í ìí, ArgoCD ì°ëì ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"helm-values-environment-variables",route:"/korean-docs/helm-values-environment-variables",frontMatter:{title:"Helm Values ë° íê²½ ë³ì",description:"Waveì íê²½ ë³ìì Helm values ì ì²´ ë í¼ë°ì¤ì
ëë¤."}},{kind:"MdxPage",name:"important-before-you-begin",route:"/korean-docs/important-before-you-begin",frontMatter:{title:"ì¤ì: ììí기 ì ì",description:"ì²ì ì¬ì©íë ë¶ë¤ì´ ì주 ëì¹ë Waveì ë°íì ëì ë°©ìì
ëë¤. ML íìµ warmup, 모ëí°ë§ 모ë, 10ë¶ ë¶ì 주기, Realtime Resizing ê´ë ¨ 주ì ì¬íì ë¤ë£¹ëë¤."}},{kind:"Folder",name:"installation-guides",route:"/korean-docs/installation-guides",children:[{kind:"Meta",data:{"amazon-eks":{title:"Amazon EKS"},openshift:{title:"Red Hat OpenShift"},"generic-kubernetes":{title:"ì¼ë° Kubernetes"}}},{kind:"MdxPage",name:"amazon-eks",route:"/korean-docs/installation-guides/amazon-eks",frontMatter:{title:"Amazon EKS ì¤ì¹",description:"AWS Marketplace(Metered ëë BYOL) ëë GHCR를 íµí´ Amazon EKSì Wave를 ì¤ì¹í©ëë¤."}},{kind:"MdxPage",name:"generic-kubernetes",route:"/korean-docs/installation-guides/generic-kubernetes",frontMatter:{title:"ë²ì© Kubernetes ì¤ì¹",description:"GHCR를 íµí´ AKS, GKE, OKD ëë ìì²´ ê´ë¦¬í Kubernetesì Wave를 ì¤ì¹í©ëë¤. ìì´ê° íê²½ ë° íë¼ì´ë¹ ë ì§ì¤í¸ë¦¬ ê°ì´ëë í¬í¨í©ëë¤."}},{kind:"MdxPage",name:"openshift",route:"/korean-docs/installation-guides/openshift",frontMatter:{title:"Red Hat OpenShift ì¤ì¹",description:"ì¸ì¦ë Operator(OperatorHub), Red Hat Ecosystem Catalog Helm ì°¨í¸ ëë GHCR를 íµí´ OpenShiftì Wave를 ì¤ì¹í©ëë¤."}}]},{kind:"MdxPage",name:"introduction",route:"/korean-docs/introduction",frontMatter:{title:"Wave ìê°",description:"Waveë ì¿ ë²ë¤í°ì¤ ì´ìì ìí ë² ì¤í¸ íëí°ì¤ ì´ì ë ì´ì´ì
ëë¤. Day 2 ì´ìì ê¶ê³ íê³ ìëíí©ëë¤. ì¤ì¼ì¼ë§, ì¬ì´ì§, ë
¸ë ê´ë¦¬, í¸ëí½, ì§ë¨ì ìì°ë¥´ë ì¬ì¯ ê° ìë¸ ë¸ëë를 ì ê³µí©ëë¤."}},{kind:"MdxPage",name:"quick-start",route:"/korean-docs/quick-start",frontMatter:{title:"ë¹ ë¥¸ ìì",description:"íë«í¼ì ì ííê³ Kubernetesì Wave를 ì¤ì¹í©ëë¤."}},{kind:"Folder",name:"reference",route:"/korean-docs/reference",children:[{kind:"Meta",data:{"*":{theme:{sidebar:!0,toc:!0}},"api-reference":{title:"API ë í¼ë°ì¤",href:"/api-reference"},troubleshooting:{title:"문ì í´ê²°"}}},{kind:"MdxPage",name:"troubleshooting",route:"/korean-docs/reference/troubleshooting",frontMatter:{title:"문ì í´ê²°",description:"ì주 ë°ìíë 문ì ì í´ê²° ë°©ë²ì
ëë¤."}}]},{kind:"Folder",name:"wave-autoscale",route:"/korean-docs/wave-autoscale",children:[{kind:"Meta",data:{overview:{title:"ê°ì"},"getting-started":{title:"ììí기"},"core-configuration":{title:"íµì¬ 구ì±"},"cost-vs-performance":{title:"ë¹ì© ë ì±ë¥ ìµì í"},"predictive-scaling":{title:"Predictive Scaling"},"timing-controls":{title:"íì´ë° ì ì´"},scheduler:{title:"Autopilot Scheduler"},"min-max-recommendations":{title:"Min/Max Recommendations"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"core-configuration",route:"/korean-docs/wave-autoscale/core-configuration",frontMatter:{title:"Autopilot Core Configuration | Wave",description:"ì¤ì¼ì¼ë§ ìê³ê°, ë©í¸ë¦, ì ì±
ìµì
ì í¬í¨í Wave Autopilotì ì ì²´ ì¤ì ë í¼ë°ì¤ì
ëë¤."}},{kind:"MdxPage",name:"cost-vs-performance",route:"/korean-docs/wave-autoscale/cost-vs-performance",frontMatter:{title:"Autopilot Cost vs Performance ìµì í | Wave",description:"ë¹ì© ìµì íì ì±ë¥ ìµì íë¼ë ë ê°ì§ Autopilot ì¤ì¼ì¼ë§ ì ëµì ì´í´íê³ , ìí¬ë¡ëì ë§ë ì ëµì ì ííë ë°©ë²ì ììë´
ëë¤."}},{kind:"MdxPage",name:"crds",route:"/korean-docs/wave-autoscale/crds",frontMatter:{title:"Wave Autoscale CRD 참조",description:"CRD Modeìì Wave Autoscale(Autopilot)ì ì¤ì íë ì¸ ê°ì§ CRD kindì íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/korean-docs/wave-autoscale/getting-started",frontMatter:{title:"Autopilot ììí기 | Wave",description:"Autopilot íì´ì§ìì ëª ë¶ ë§ì Kubernetes ìí¬ë¡ëì Wave Autopilotì íì±ííë ë¹ ë¥¸ ìì ê°ì´ëì
ëë¤."}},{kind:"MdxPage",name:"min-max-recommendations",route:"/korean-docs/wave-autoscale/min-max-recommendations",frontMatter:{title:"Min/Max Recommendations | Wave",description:"ê° Deploymentì í¸ëí½ í¨í´ì ë°íì¼ë¡ ì°ì¶íë, Autopilotì ML ê¸°ë° ìµì/ìµë ë í리카 ë²ìì
ëë¤."}},{kind:"MdxPage",name:"overview",route:"/korean-docs/wave-autoscale/overview",frontMatter:{title:"Autopilot ê°ì | Wave",description:"Wave Autopilotì´ ML ê¸°ë° ìí Pod ì¤í ì¤ì¼ì¼ë§ì¼ë¡ ìì´ ë´ì ë°ìíê³ ìë HPA ì¤ì ì ëì²´íë ë°©ë²ì ììë´
ëë¤."}},{kind:"MdxPage",name:"predictive-scaling",route:"/korean-docs/wave-autoscale/predictive-scaling",frontMatter:{title:"Autopilot Predictive Scaling | Wave",description:"Wave Autopilotì´ ìê³ì´ í¬ìºì¤í
ì¼ë¡ í¥í ë¶í를 ê°ë í´ í¸ëí½ ë°ì ì ì ìí¬ë¡ë를 ì¤ì¼ì¼ë§í¨ì¼ë¡ì¨ ì§ì° ìê° ê¸ì¦ì ë°©ì§íë ë°©ë²ì ì¤ëª
í©ëë¤."}},{kind:"MdxPage",name:"scheduler",route:"/korean-docs/wave-autoscale/scheduler",frontMatter:{title:"Autopilot Scheduler | Wave",description:"cron ííìì ì¬ì©í´ í¹ì ìê°ì ìë¡ ë¤ë¥¸ Autopilot ì¤ì ì ì ì©í©ëë¤. ìì
ìê°, íë¡ëª¨ì
ì´ë²¤í¸, ì ì§ë³´ì 기ê°ì ì í©í©ëë¤."}}
1,{kind:"MdxPage",name:"timing-controls",route:"/korean-docs/wave-autoscale/timing-controls",frontMatter:{title:"Autopilot Timing Controls | Wave",description:"ìëµì±ê³¼ ìì ì±ì ê· íì ë§ì¶ë íì´ë° ì ì´ë¡ Autopilotì ì¤ì¼ì¼ë§ ëìì ì¸ë°íê² ì¡°ì íë ë°©ë²ì ì¤ëª
í©ëë¤. scale-up ì§ì°, scale-down stabilization, cooldown 기ê°ì ë¤ë£¹ëë¤."}}]},{kind:"Folder",name:"wave-diagnosis",route:"/korean-docs/wave-diagnosis",children:[{kind:"Meta",data:{overview:{title:"ê°ì"},crds:{title:"CRDs"},"--- Failures":{title:"ì¥ì ",type:"separator"},"pod-container-failures":{title:"Pod/컨í
ì´ë ì¥ì "},"memory-leak-detection":{title:"ë©ëª¨ë¦¬ ëì ê°ì§"},"pod-scheduling-delay":{title:"Pod ì¤ì¼ì¤ë§ ì§ì°"},"cpu-utilization":{title:"ìí¬ë¡ë CPU ì¬ì©ë¥ "},"--- Waste":{title:"ëë¹",type:"separator"},"idle-node-detection":{title:"ì í´ ë
¸ë ê°ì§"},"--- Capacity":{title:"ì©ë",type:"separator"},"cluster-resource-forecast":{title:"í´ë¬ì¤í° 리ìì¤ ì측"},"pv-capacity-forecast":{title:"PV ì©ë ì측"}}},{kind:"MdxPage",name:"cluster-resource-forecast",route:"/korean-docs/wave-diagnosis/cluster-resource-forecast",frontMatter:{title:"Cluster Resource Forecast",description:"Cluster Resource Forecastë í´ë¬ì¤í° ìì¤ì CPUì ë©ëª¨ë¦¬ ì¬ì©ë¥ ì 7ì¼, 30ì¼ ìì ì¼ë¡ ì측í´ì, í´ë¬ì¤í°ê° ë¶ì¡±í´ì§ê¸° ì ì ì©ëì ì¶ê°íê±°ë ìí¬ë¡ë를 ì ì ì¬ì´ì§í ì ìê² í©ëë¤.",searchable:!0}},{kind:"MdxPage",name:"cpu-utilization",route:"/korean-docs/wave-diagnosis/cpu-utilization",frontMatter:{title:"Workload CPU Utilization Analysis",description:"Workload CPU Utilization Analysisë 모ë ìí¬ë¡ë를 CPU ë¶í ìì¤ì ë°ë¼ ë¤ ë¨ê³ë¡ ë¶ë¥í´ì, í´ë¬ì¤í° ì ì²´ìì CPUê° ë¶ì¡±í ìí¬ë¡ëì ê³¼ë¤ íë¡ë¹ì ëë ìí¬ë¡ë를 íëì ì°¾ìë¼ ì ìê² í©ëë¤.",searchable:!0}},{kind:"MdxPage",name:"crds",route:"/korean-docs/wave-diagnosis/crds",frontMatter:{title:"Wave Diagnosis CRDs",description:"CRD Modeìì Wave Diagnosis ìì
ì ì¤ì íë WaveDiagnosisConfig CRD ì¢
ë¥ì íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"idle-node-detection",route:"/korean-docs/wave-diagnosis/idle-node-detection",frontMatter:{title:"Idle Node Detection",description:"Idle Node Detectionì ë¹ì©ì ë´ì§ë§ ì¤ì ë¡ ì°ì´ì§ ìë Node, ì¦ DaemonSetë§ ëê³ ìê±°ë ìì Podê° ìë Node를 ì°¾ìë´ê³ , ëë¹ëë CPUì ë©ëª¨ë¦¬ë¥¼ ìì¹íí´ì íµí©íê±°ë ì¤ì¼ì¼ ë¤ì´í ì ìê² í©ëë¤.",searchable:!0}},{kind:"MdxPage",name:"memory-leak-detection",route:"/korean-docs/wave-diagnosis/memory-leak-detection",frontMatter:{title:"Memory Leak Detection",description:"Memory Leak Detectionì ë©ëª¨ë¦¬ ìµì ì¹ê° ê³ì ì¬ë¼ê°ë ìí¬ë¡ë를 ì°¾ìë´ê³ , memory limitì ê·¼ì í´ ì¤í ì¤ì¸ ìí¬ë¡ë를 ìë ¤ì¤ì, OOMKillì´ ë기 ì ì 미리 ëìí ì ìê² í©ëë¤.",searchable:!0}},{kind:"MdxPage",name:"overview",route:"/korean-docs/wave-diagnosis/overview",frontMatter:{title:"Wave Diagnosis ê°ì",description:"Wave Diagnosisë ì´ììê° ë¬»ë ì¸ ê°ì§ ì§ë¬¸, ì¦ ì§ê¸ 무ìì´ ì¤í¨íê³ ìëì§, ë¹ì©ì´ ì´ëì ìê³ ìëì§, 무ìì´ ê³§ ë¶ì¡±í´ì§ì§ì ì§ì ëµíë ì§ë¨ ì½ìì
ëë¤. ëìë³´ë를 í´ìíë ëì í´ë¬ì¤í°ì ìì ì í¸ë¥¼ ê³§ë°ë¡ ëµì¼ë¡ ë°ê¿ì¤ëë¤."}},{kind:"MdxPage",name:"pod-container-failures",route:"/korean-docs/wave-diagnosis/pod-container-failures",frontMatter:{title:"Pod/Container Failures",description:"Pod/Container Failuresë ìì´ì í¸ê° ì ì¡íë ë°ì´í°ìì ë¹ì ìì ì¸ Pod ë° ì»¨í
ì´ë ì¢
ë£(OOMKilled, CrashLoopBackOff, silent crash, eviction, preemption ë±)를 ì§ì ê°ì§íê³ , 근본 ìì¸ì ì°¾ë ë° íìí ë¡ê·¸, YAML, ì¸ìëí¸ íìë¼ì¸ì ìì§í©ëë¤.",searchable:!0}},{kind:"MdxPage",name:"pod-scheduling-delay",route:"/korean-docs/wave-diagnosis/pod-scheduling-delay",frontMatter:{title:"Pod Scheduling Delay Detection",description:"Pod Scheduling Delay Detectionì Podê° Pending ìíë¡ ì¼ë§ë ì¤ë ë기íëì§ì ê·¸ ì´ì 를, ìí¬ë¡ëë³ ì íí ì¤ì¼ì¤ë¬ ì¡°ê±´ê³¼ í¨ê» ì¶ì í©ëë¤. ê·¸ëì ì¤ì ì©ë ë¶ì¡±ê³¼ ì못ë pod spec ì¤ì ì íëì 구ë¶í ì ììµëë¤.",searchable:!0}},{kind:"MdxPage",name:"pv-capacity-forecast",route:"/korean-docs/wave-diagnosis/pv-capacity-forecast",frontMatter:{title:"PV Capacity Forecast",description:"PV Capacity Forecastë ê° PersistentVolumeì ì¬ì©ëì 7ì¼, 30ì¼ ìì ì¼ë¡ ì측í´ì, ë³¼ë¥¨ì´ ê°ë ì°¨ì ì í리ì¼ì´ì
ì´ ë©ì¶ê¸° ì ì ì¤í 리ì§ë¥¼ íì¥íê±°ë ì 리í ì ìê² í©ëë¤.",searchable:!0}}]},{kind:"Folder",name:"wave-flow",route:"/korean-docs/wave-flow",children:[{kind:"Meta",data:{overview:{title:"ê°ì",theme:{sidebar:!0,toc:!0}},"getting-started":{title:"ììí기",theme:{sidebar:!0,toc:!0}},"priority-load-shedding":{title:"ì°ì ìì ê¸°ë° í¸ëí½ ë³´í¸",theme:{sidebar:!0,toc:!0}},netfunnel:{title:"NetFUNNEL ì°ë"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"crds",route:"/korean-docs/wave-flow/crds",frontMatter:{title:"Wave Flow CRD",description:"CRD Modeìì Wave Flow를 ì¤ì íë ì¸ ê°ì§ CRD ì¢
ë¥ì íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/korean-docs/wave-flow/getting-started",frontMatter:{title:"Wave Flow ììí기"}},{kind:"MdxPage",name:"netfunnel",route:"/korean-docs/wave-flow/netfunnel",frontMatter:{title:"NetFUNNEL ì°ë",searchable:!0}},{kind:"MdxPage",name:"overview",route:"/korean-docs/wave-flow/overview",frontMatter:{title:"Wave Flow ê°ì"}},{kind:"MdxPage",name:"priority-load-shedding",route:"/korean-docs/wave-flow/priority-load-shedding",frontMatter:{title:"ì°ì ìì ê¸°ë° í¸ëí½ ë³´í¸"}}]},{kind:"Folder",name:"wave-karpenter",route:"/korean-docs/wave-karpenter",children:[{kind:"Meta",data:{overview:{title:"ê°ì"},"getting-started":{title:"ììí기"},dashboard:{title:"ëìë³´ë"}
1,"node-warmup":{title:"ë
¸ë ìë°ì
"},"spot-workload-placement":{title:"ì¤í ìí¬ë¡ë ë°°ì¹"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"crds",route:"/korean-docs/wave-karpenter/crds",frontMatter:{title:"Wave Karpenter CRDs",description:"CRD Modeìì Wave Karpenter를 구ì±íë CRD kind íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"dashboard",route:"/korean-docs/wave-karpenter/dashboard",frontMatter:{title:"Karpenter Dashboard"}},{kind:"MdxPage",name:"getting-started",route:"/korean-docs/wave-karpenter/getting-started",frontMatter:{title:"Karpenter íµí© ììí기"}},{kind:"MdxPage",name:"node-warmup",route:"/korean-docs/wave-karpenter/node-warmup",frontMatter:{title:"Node Warmup"}},{kind:"MdxPage",name:"overview",route:"/korean-docs/wave-karpenter/overview",frontMatter:{title:"Karpenter íµí© ê°ì"}},{kind:"MdxPage",name:"spot-workload-placement",route:"/korean-docs/wave-karpenter/spot-workload-placement",frontMatter:{title:"Spot Workload Placement"}}]},{kind:"Folder",name:"wave-sizing",route:"/korean-docs/wave-sizing",children:[{kind:"Meta",data:{overview:{title:"ê°ì"},"getting-started":{title:"ììí기"},dashboard:{title:"Sizing ì½ì"},"smart-sizing-tab":{title:"ìí¬ë¡ëì Smart Sizing í"},"aggressive-recommendations":{title:"Aggressive ì¶ì²"},"resize-now":{title:"Resize Now (ìë ì ì©)"},"realtime-smart-sizing":{title:"Realtime Resizing"},"container-settings":{title:"컨í
ì´ë ì¤ì "},"smart-sizing-report":{title:"Smart Sizing Report"},crds:{title:"CRDs"}}},{kind:"MdxPage",name:"aggressive-recommendations",route:"/korean-docs/wave-sizing/aggressive-recommendations",frontMatter:{title:"Aggressive Recommendations",description:"ë¹ì© ì°ì Smart Sizing: 7ì¼ ì´ì ê´ì°° ì°½ ëì ìµê·¼ 1ìê°ì ì¬ì©ë(request = íê· , limit = ìµê³ )ì¼ë¡ ì¶ì²íë©°, ì¸ì ì¬ì©í´ì¼ íëì§ ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"container-settings",route:"/korean-docs/wave-sizing/container-settings",frontMatter:{title:"Container Settings",description:"컨í
ì´ëë³ Smart Sizing ì ì´: ì¶ì² ë²ì(min/maxì ìì ë²í¼), request/limit ë¨ìë¡ ì¸ë¶íë auto-apply opt-inì ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"crds",route:"/korean-docs/wave-sizing/crds",frontMatter:{title:"Wave Sizing CRDs",description:"CRD Modeìì Smart Sizingì ì¤ì íë WaveSmartSizingPolicy CRD ì¢
ë¥ì íë ë í¼ë°ì¤ì
ëë¤.",searchable:!0}},{kind:"MdxPage",name:"dashboard",route:"/korean-docs/wave-sizing/dashboard",frontMatter:{title:"Sizing Console",description:"Wave Sizing ì½ìì ì½ë ë°©ë²: savings/risk KPI, Provisioning Mix, Take Action 목ë¡, 컨í
ì´ëë³ ìí ë°°ì§ê° ìë Overviewì Recommendations íì´ì§ë¥¼ ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"getting-started",route:"/korean-docs/wave-sizing/getting-started",frontMatter:{title:"Smart Sizing ììí기",description:"Wave를 ìë¡ ì¤ì¹í ë¤ ìí¬ë¡ë를 ì²ìì¼ë¡ ì ì ì¬ì´ì§í기ê¹ì§: ëìë³´ë ê²í , ì¶ì² ì ì©, Realtime Resizingì¼ë¡ ëì´ê°ë ê³¼ì ì ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"overview",route:"/korean-docs/wave-sizing/overview",frontMatter:{title:"Smart Sizing ê°ì",description:"Smart Sizingì´ ëª¨ë ìí¬ë¡ëì CPUì ë©ëª¨ë¦¬ ì¬ì©ëì ì´ë»ê² ì¶ì²íëì§ ì¤ëª
í©ëë¤: ì¬ì©ë ê¸°ë° ëª¨ë¸, HPA/Autopilotì ìí ìí¬ë¡ë ì±ë¥ 모ë¸, ê·¸ë¦¬ê³ ì¶ì²ì ì ì©íë ë ê°ì§ ë°©ë²ì ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"realtime-smart-sizing",route:"/korean-docs/wave-sizing/realtime-smart-sizing",frontMatter:{title:"Realtime Resizing",description:"Realtime Resizing ì´ì ê°ì´ë: Waveê° Smart Sizing ì¶ì² ê°ì ìëì¼ë¡ ì ì©íë íì´íë¼ì¸ì
ëë¤. Apply Modes, ì¤íµ ìê³ê°, í´ë¬ì¤í° ì¬ì ì구ì¬í, ArgoCD ë° Autopilotê³¼ì ìë ¤ì§ ìí¸ìì©ì ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"resize-now",route:"/korean-docs/wave-sizing/resize-now",frontMatter:{title:"Resize Now (ìë ì ì©)",description:"Smart Sizing ì¶ì² ê°ì ì¦ì ì ì©íë ë°©ë²: Resize Now 모ë¬, Edit CRDì In-Place Pod Resize ë¹êµ, Kubernetes ë²ì ì구ì¬í, 문ì í´ê²°ì ë¤ë£¹ëë¤.",searchable:!0}},{kind:"MdxPage",name:"smart-sizing-report",route:"/korean-docs/wave-sizing/smart-sizing-report",frontMatter:{title:"Smart Sizing Report",description:"Smart Sizing Reportë í´ë¬ì¤í°ì ì ì ì¬ì´ì§ íí©(ìì ì ê°ì¡, í¨ì¨ ë¹ì¨, ì ë¢°ì± íí©, AS-IS â TO-BE CPU/ë©ëª¨ë¦¬, ìê° ì§ì¶, ì ê° ì¬ì )ì íê³³ì ì ë¦¬í´ ê³µì íê±°ë PDFë¡ ë´ë³´ë¼ ì ìê² í´ì¤ëë¤.",searchable:!0}},{kind:"MdxPage",name:"smart-sizing-tab",route:"/korean-docs/wave-sizing/smart-sizing-tab",frontMatter:{title:"ìí¬ë¡ëì Smart Sizing í",description:"ìí¬ë¡ëì Smart Sizing íì ì½ë ë°©ë²: Info ì¹´ë, 컨í
ì´ë ì¹´ë, ì¶ì² ì´ë ¥, Apply History, Restore Originalì ë¤ë£¹ëë¤.",searchable:!0}}]},{kind:"MdxPage",name:"wave-vs-hpa-vpa-prometheus",route:"/korean-docs/wave-vs-hpa-vpa-prometheus",frontMatter:{title:"Waveì HPA, VPA, Prometheus ë¹êµ",description:"Waveê° Kubernetes 기본 ì¤í ì¤ì¼ì¼ë§ ììë¤ ë° Prometheus + HPA í¨í´ê
1³¼ ì´ë»ê² ë¤ë¥¸ì§ ì¤ëª
í©ëë¤."}}]},{kind:"MdxPage",name:"license",route:"/license",frontMatter:{title:"Request a free licence key - Wave",description:"Request a free Wave licence key for Kubernetes clusters under 200 vCPU. Amazon EKS, OpenShift, GKE, AKS, OKE and self-managed clusters.",searchable:!0}},{kind:"MdxPage",name:"pricing",route:"/pricing",frontMatter:{title:"Pricing - Wave Autoscale Kubernetes Automation",description:"Wave pricing for Amazon EKS, OpenShift, and other Kubernetesâfree under 200 vCPUs, with simple per-vCPU metered billing above that.",searchable:!0}},{kind:"Folder",name:"solutions",route:"/solutions",children:[{kind:"Meta",data:{"*":{display:"hidden"},index:{title:"Solutions",type:"page",theme:{layout:"raw",navbar:!0}},"cost-optimization":{title:"Cost Optimization",type:"page",theme:{layout:"raw",navbar:!0}},"right-sizing":{title:"Right-Sizing",type:"page",theme:{layout:"raw",navbar:!0}},autoscaling:{title:"Autoscaling",type:"page",theme:{layout:"raw",navbar:!0}},"karpenter-in-production":{title:"Karpenter in Production",type:"page",theme:{layout:"raw",navbar:!0}},"reliability-capacity":{title:"Reliability & Capacity",type:"page",theme:{layout:"raw",navbar:!0}}}},{kind:"MdxPage",name:"autoscaling",route:"/solutions/autoscaling",frontMatter:{title:"Fast, reliable autoscaling | Wave",description:"Beat HPA's 30sâ3min reaction lag and survive traffic spikes with workload-performance-based scaling.",searchable:!0}},{kind:"MdxPage",name:"cost-optimization",route:"/solutions/cost-optimization",frontMatter:{title:"Cost Optimization â Stop Overpaying for Kubernetes | Wave",description:"Over 65% of K8s containers use less than half their requested CPU and memory. Wave finds the waste, quantifies it, and reclaims it via Smart Sizing, idle node detection, and safe Spot placement.",searchable:!0}},{kind:"MdxPage",name:"index",route:"/solutions",frontMatter:{title:"Solutions â Find Your K8s Challenge | Wave",description:"Five Kubernetes Day 2 problems Wave solves: cost optimization, scaling & sizing reliability, reliability & capacity, Karpenter in production, and priority traffic control on Istio.",searchable:!0}},{kind:"MdxPage",name:"karpenter-in-production",route:"/solutions/karpenter-in-production",frontMatter:{title:"Karpenter in Production â Visibility, Warmup, and Safe Spot | Wave",description:"Karpenter is fast â but it ships without operational visibility, pre-warming, or smart Spot placement. Wave adds the production-grade layer that Karpenter needs.",searchable:!0}},{kind:"MdxPage",name:"reliability-capacity",route:"/solutions/reliability-capacity",frontMatter:{title:"Reliability & Capacity â Catch Incidents Before They Happen | Wave",description:"OOMKills, capacity exhaustion, PV outages, and scheduling delays all start as detectable signals hours or days before they become incidents. Wave surfaces them before they hit production.",searchable:!0}},{kind:"MdxPage",name:"right-sizing",route:"/solutions/right-sizing",frontMatter:{title:"Right-size requests & limits â safely | Wave",description:"Trust automated CPU/memory right-sizing in production â no restarts, safe Min/Max bounds.",searchable:!0}}]}],flexsearch:{codeblocks:!0},title:"Pod Scheduling Delay Detection",headings:d},pageNextRoute:"/docs/wave-diagnosis/pod-scheduling-delay",nextraLayout:o.ZP,themeConfig:r.Z};t.default=(0,n.j)(p)}},function(e){e.O(0,[1664,3751,5675,665,1003,743,2888,9774,179],function(){return e(e.s=75746)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.