Answer-first: Tính năng In-Place Pod Resizing (Nâng hạ Pod Tại Chỗ - đã đạt mốc GA ổn định ở Kubernetes v1.35) trao quyền cho bạn thay đổi cấu hình requests/limits của cả CPU và memory (bộ nhớ) trên các containers đang trong quá trình chạy mà chẳng thèm phải restart (khởi động lại) cái pod đó — triệt tiêu hoàn toàn sự gián đoạn của các đợt khởi động lạnh (cold-start disruptions) dành riêng cho nhóm tải việc AI inference (suy luận AI), hệ thống cơ sở dữ liệu (databases), và cả mấy cái khối xử lý mang thuộc tính stateful (cần lưu trạng thái) cứng đầu. Cuốn cẩm nang này sẽ moi móc hết rạch ròi về yêu cầu mấu chốt, hàng mẫu YAML dùng cho production, kiểu tích hợp chung bộ VPA, các nước cờ tối ưu hóa tiền bạc, cùng mấy cái bẫy chết người (gotchas).

Ngược dòng thời gian trước khi có thứ vũ khí này, muốn sửa đổi miếng bánh tài nguyên (resource allocation) cấp cho một cái container thì chỉ có nước cắn răng nhấn xóa đập bỏ đi xong rồi lại móc nặn tái tạo từ đầu một cái pod mới (deleting and recreating the pod). Thử tưởng tượng với một con database dạng stateful đang tay ôm giữ khư khư mớ chùm nối mạng connections, hay một bộ não mô hình AI đang chất ních ngậm 30GB khối lượng weights trương phình chật kín bộ nhớ, hoặc rủi là một chuyến tàu chở hàng batch job chạy marathon — cái nhát cắn restart đó đúng là thảm họa giáng xuống đầu (catastrophic). Phép màu In-Place Pod Resize rốt cục đã giang tay gỡ trói tháo tung cái gánh nặng kìm kẹp cột quản lý tài nguyên tách bạch hoàn toàn ra khỏi cái vòng luân hồi sinh tử của một con pod (pod lifecycle).

Bài báo này chính xác là một bộ cẩm nang chiến trận production: chộp lấy giải thích rõ nó là cái quái gì, đem đi xài như thế nào, và đâu là những góc cạnh sắc bén rạch máu tay. Để liếc nhìn rộng hơn về bức tranh bài binh bố trận toàn diện bên phía hệ Kubernetes, thì thử ngó qua bài chỉ nam GitOps ở Quy Mô Lớn (GitOps at Scale) của tụi này. Chẳng may mà bạn còn đang lên kế hoạch mài giũa hệ thống Go services, thì cái đống xôi thịt Cải tiến Go 1.26 Green Tea GC quả thực là đòn kết hợp cực phẩm ăn ý cặp bài trùng sóng đôi cùng ngón đòn resize tại chỗ này để dồn ép bọn ứng dụng thèm ngốn bộ nhớ (memory-efficient workloads).


1. Món In-Place Pod Resizing Này Rốt Cuộc Là Cái Cớ Sự Gì?

Answer-first: In-Place Pod Resizing giang tay thả lỏng để cho bạn gõ một phát PATCH đè ngay lập tức lệnh chỉnh sửa các thông số resource requests/limits của container trên một cái pod đương nhịp chạy sống rành rành nhờ vào trạm đường dẫn nhánh (subresource) tên /resize. Thành phần kubelet sẽ tự tay thọc sâu vào cựa nắn ép các giới hạn của phần container cgroup mà tuyệt đối không nảy sinh trò ngắt cầu dao dừng máy hay bắt ép phải nhồi khởi động lại nó (restarting). Tính năng xịn sò này đã đường hoàng bước lên bục phong ấn mác Ổn Định (Stable - GA) nằm ngay tại bản Kubernetes v1.35, vừa ra lò nhả khói dạo tháng 12/2025.

Bức Tranh So Kè Trở Tay: Trước vs. Sau

Khung Cảnh Trận Mạc (Scenario)Thuở Trước v1.35Thời Khắc Sau v1.35
Tụi AI inference pod rú rít đòi thêm họng bộ nhớ lúc đụng nóc tải (peak)Chém đầu pod → Cắm cờ gọi pod mới lên → Gồng lưng nhồi nạp model weights (ăn nhạt 30s–5phút chờ cold start)Giã lệnh PATCH resize → Hạn mức Memory nhích nở lên tức thì chừng ~1s → Êm ru chả rớt nhịp (No disruption)
Lão Database nài nỉ xin trướng phình CPU burst gánh chuyến chót mẻ đêm batchTay máy Vertical Pod Autoscaler bực bóp mỏ restart → rơi rụng xả cụt sạch lốc mớ chùm kết nối connectionsVPA quất nhẹ lệnh patches resize → Vạch chỉ CPU limit vọt lên → Không rụng một cọng kết nối (zero connection loss)
Pod của bầy phát triển dev gào kêu mượn rớ nới tí xíu tài nguyên tạm bợMò mẫm sửa deployment → cắn răng rolling restartGõ cọc kubectl resize → Nhanh phát một tắp lự (instant)
Phí phạm để không tụi pods rảnh rỗi ngốn đồ lãng phí suốt đêm overnightPhải Scale down giật tụt số lượng replicas xuống (bị bóp mất tiêu trạng thái state)Thu chóp Resize xuống thấp → nuôi lây lất giữ lấy cái mạng sống pod hớp tí ti cỏn con tài nguyên (minimal resources)

Chặng Đường Tu Đạo Lên Ngai GA

Phiên Bản (Version)Định Phận Dấu Ấn (Status)Lời Bàn (Notes)
Dấu v1.27 (2023)Mầm non AlphaBị nhốt sau cánh cổng InPlacePodVerticalScaling
Cột v1.31 (2024)Chồi xanh BetaĐược đặc xá mở sẵn bên phía API server, còn bên vế kubelet thì bị khép cửa
Chạm v1.33 (2025)Lõi rễ BetaCờ bật thả lỏng mặc định ở mọi mặt trận
Đỉnh v1.35 (Tháng 12 2025)Thành Quả Lớn Ổn Định (Stable / GA)Không rào không dậu mớ cổng feature gates chi nữa cả. Rộng cửa rước vào mặc định (Enabled by default).

2. Các Đòi Hỏi Khắt Khe Nền Tảng (Requirements)

Answer-first: Đáp đất ngay bãi Kubernetes v1.35+, chức năng thần thông In-Place Pod Resizing tự tin chường mặt hoạt động ngon lành (works out of the box) mà chẳng phải cạy gỡ thêm cái đống chốt khóa feature gates nào ráo. Thứ vướng bận đòi nợ nhức óc nhất chính là bộ nền chạy container (container runtime) bắt buộc phải đính sẵn chức năng hậu thuẫn ôm đỡ cái rễ API resize — điểm mặt có đại diện containerd ≥ 1.6.9 hoặc cũng có thể thế chân là CRI-O ≥ 1.25.

Bảng Mục Kiểm Duyệt Nền Móng (Infrastructure Checklist)

Món Thành Phần (Component)Vạch Mức Bản Phiên Tối Thiểu (Minimum Version)Đôi Lời Chú Thích (Notes)
Kubernetesv1.35+Giăng bảng GA, tiễn mớ chốt khóa rào feature gates
containerd≥ 1.6.9Gồng gánh rước bộ chức năng lệnh gọi CRI UpdateContainerResources
CRI-O≥ 1.25Phương án thay áo đối ngạch bọc rẽ so găng với anh containerd
kubeletv1.35+Buộc rập y xì khớp dính với bảng phiên số từ rốn API server
kubectlv1.35+Có vậy mới xúi giục gõ rào thao tác tiện trơn cái món lệnh kubectl resize

Tình Hình Bảo Kê Trợ Lực Từ Tụi Dịch Vụ Kubernetes Đi Thuê (Dữ Liệu Thống Kê Điểm Nhịp Tới Tháng 6 Năm 2026)

Nhà Cho Thuê Cung Ứng (Provider)Độ Mở Hỗ Trợ (Supported)Chút Vài Dòng Thông Báo Lẻ (Notes)
Cụm EKS✅ Nằm cụm cluster v1.35Phơi hàng lòi ra đón khách từ Tháng 3 2026
Bãi GKE✅ Cắm cụm cluster v1.35Ngồi chiếu ưu tiên ở làn rước nhanh Rapid channel first
Sới AKS✅ Nã cụm cluster v1.35Dòm thả mồi xem trước Preview tít tắp tháng 2 2026
K3s✅ Bản v1.35+Ăn nhịp bập liền mạch lọt với bộ rễ nhúng nhét đính sẵn embedded containerd

3. Khui Cấu Trúc Guồng Bộ Máy (How It Works): Luật Kéo Cắt (Resize Policy) Cùng Với Tình Trạng Hiện Thời Của Cái Pod (Pod Status)

Answer-first: Từng cái vạch mặt container một sẽ được nhúng găm cho dính một cái bản điều quy tên resizePolicy đánh rớt thẳng lên từng món tài nguyên riêng lẻ (CPU/memory) hòng ấn định vạch mặt chỉ tên xem trò resize này có được cho ập xuống quất rốc tác động tức thì ngay lập tức không (NotRequired) hoặc nhỡ phải đi theo quy trình bế quan giật nút nổ tung dập lại container kia (RestartContainer). Rờ qua tay cái ngạch status.resize gắn trên mình của cái pod là rành rẽ nắm ngay được cái cỗ máy vòng trạng thái của tiến trình resize (resize state machine).

Khởi Thủy Dòng Chảy Thay Đổi Thể Tích (Resize Flow)

sequenceDiagram
    participant User as Người gọi kubectl / VPA
    participant API as Cổng API Server
    participant Kubelet as Kubelet
    participant CRI as Bộ runtime containerd / CRI-O
    participant Container as Lõi Running Container
    
    User->>API: Phất lệnh PATCH /api/v1/namespaces/ns/pods/name/resize
    API->>API: Kiểm định vạch soi tài nguyên mới quăng chọi rà coi mớ LimitRange/Quota có cho lọt
    API->>Kubelet: Ánh mắt Watch đánh hơi xì nhan đánh tiếng có biến động spec
    Kubelet->>Kubelet: Soi mói đem đọ đo lôi spec.resources chọi vào status.resources
    Kubelet->>CRI: Tạt lệnh UpdateContainerResources(newCPU, newMemory)
    CRI->>Container: Nắn thóp bóp vuốt cái ngưỡng vạch cgroup limits (cpu.max, memory.max)
    Container-->>CRI: Duyệt OK (im ru lẳng lặng không hề có mớ bùng nổ restart)
    CRI-->>Kubelet: Thắng Lợi Success
    Kubelet->>API: Úp đè vá Update mảng pod.status.containerStatuses[].resources
    Kubelet->>API: Chốt đinh Set pod.status.resize = ""  (khép cửa coi như hoàn thành complete)

Bộ Chọn Lựa Thả Luật Resize (Resize Policy Options)

spec:
  containers:
  - name: inference
    resizePolicy:
    - resourceName: cpu
      restartPolicy: NotRequired      # Đụng đè CPU resize: chả thèm cớ gì đòi bưng cái restart needed
    - resourceName: memory
      restartPolicy: RestartContainer  # Lấn dạt sang Memory resize: trói ép phải bắt chịu cái khoản container restart
Mạch restartPolicyKiểu Đu Đưa (Behavior)Khuyên Gấp Rinh Về Ngay Lúc Nào (Use When)
NotRequiredSự vuốt nắn resize chọt nhảy ập live thẳng thừng ăn dọng thông qua nhát điệu chỉnh bóp ngạch cgroup adjustmentChuyên mâm cho nhóm CPU (luôn thả ga bảo vệ an toàn), Memory (tự tin chơi bạo nếu cái khối app nhai tiêu chịu đựng mướt mượt được pha nhồi nở dãn ngạch memory limit)
Chức RestartContainerLõi Container bị bứng sập nhồi giật tung bừng tỉnh thức lại (restarted) liền bám chóp ngay sau vệt resizeNhóm thọt thụt khoét tụt ngạch Memory decrease (nguy to cái khối app rất có khi đã há mõm ăn ngoạm lút liếm lấp sạch lên đụng luôn trần của cái cữ ngạch cũ old limit mất tiêu), hay là gieo cho mớ app có tật xấu cắn nhay chỉ thèm nhấm soi mút cái thẻ bài memory limit vào đúng cái giờ khắc bừng mắt thức giấc lúc ban sơ mới dậy startup

Lời Sấm Truyền Tỏ Rạch Góc Production (Production recommendation): Dành riêng cho số bầy đàn phần lớn các con dịch vụ, hãy phang ghim cọc thẳng CPU vào mức NotRequired cùng với món memory neo ở mốc NotRequired nhưng cấm kỵ chỉ để khui mở rộng nới cửa mút nâng tăng lên dãn bung thêm (increases only) mà thôi. Cái chiêu thụt hạ ghim Memory decreases đánh dập lên đầu đám apps đang phình bụng phễnh phễnh ngấu nghiến ôm đống cấp mảng bãi heap to ụ (large heap allocations) rất có bề sinh sự chết giập OOM nếu như chả may con mảng app đó khờ rạc ngu ngu chẳng chịu nôn trả ngả mồi ói bớt memory (release memory) vào dĩ vãng.

Săm Soi Nắm Bắt Các Cung Bậc Tình Huống Của Pod (Pod Status) Ngay Trong Cơn Rặn Resize

status:
  resize: InProgress  # hay dòm thấy ngó: Proposed, Deferred, Infeasible, ""
  containerStatuses:
  - name: inference
    resources:
      requests:
        cpu: "4"       # thực chất khoản tài nguyên xơi lót dọn mâm thực nhận current allocation
        memory: "8Gi"
    allocatedResources:
      cpu: "4"
      memory: "8Gi"
Nhìn vào status.resizeCắt Nghĩa Căn Nguyên Bụng Dạ (Meaning)
Cái chóp "" (Rỗng không empty)Khúc dạo resize đã đứt đuôi hoàn mĩ xong xuôi hoặc bới chả có móc được mớ móng resize nào đang dính nợ đọng chờ pending
Gắn thẻ ProposedNgõ trạm cửa API server đã thả rào duyệt ngó ưng cái món lệnh resize đó, có cơ thằng kubelet lề rề chưa có chịu xắn tay vào cựa quậy động chân tay (hasn’t acted yet)
Ngạch InProgressCu li Kubelet đang nhào lộn cắm đầu hì hục nhồi bóp áp lệnh dộng cái nhát resize vào
Vướng DeferredĐau đớn cái thây máy Node dạo chóp này rỗng tuếch chả còn miếng mồi free resources rảnh rỗi nào dắt trong túi lúc này ngay tức thời right now; hẹn mai sau anh vác tiền tới gõ lại trả retry
Chết tức tưởi InfeasibleMón nợ đòi resize là nhiệm vụ bất khả thi hụt ăn không sao rặn gồng ra để thầu nổi (do nống xé đòi lố quá sức chứa node capacity)

4. Rải Xem Bảng Hàng Mẫu Đính Kèm File YAML Đóng Dấu Đóng Mộc Cho Khâu Production (Production YAML Examples)

Tờ Ráp Mẫu 1: Trồng Pod Cắm Trại Nhồi AI Inference Kẹp Phép Biến Thể Nhanh Tức Khắc CPU/Memory (Live CPU/Memory Scaling)

apiVersion: v1
kind: Pod
metadata:
  name: llm-inference
  labels:
    app: llm-inference
    model: llama-3-70b
spec:
  containers:
  - name: inference
    image: ghcr.io/yourorg/llm-server:v2.1
    resources:
      requests:
        cpu: "4"
        memory: "32Gi"
      limits:
        cpu: "8"
        memory: "64Gi"
    resizePolicy:
    - resourceName: cpu
      restartPolicy: NotRequired
    - resourceName: memory
      restartPolicy: NotRequired  # Thoải mái con gà mái bọc an toàn: trọng số model weights được luồn trét nạp bằng mmap'd, không phải ôm nạp vô cục nợ xơi heap
    ports:
    - containerPort: 8080
    readinessProbe:
      httpGet:
        path: /health
        port: 8080
      periodSeconds: 5

Bơm kích tống resize đôn nạp ngay chóc giữa tâm bão giông tải nặng chót vót của inference (Resize during peak inference load):

# Sốc nhồi húc chổng đẩy bốc CPU lên nấc cao trào đón vỡ mâm lòi đỉnh đỉnh điểm (no restart miễn đụng chạm sập nguồn)
kubectl patch pod llm-inference --subresource resize --type merge -p \
  '{"spec":{"containers":[{"name":"inference","resources":{"requests":{"cpu":"8"},"limits":{"cpu":"16"}}}]}}'

# Rú ga thục dồn tụt đạp lui dạt xuống lùi giảm gánh lúc chợp buông lơi rảnh ngơi off-peak
kubectl patch pod llm-inference --subresource resize --type merge -p \
  '{"spec":{"containers":[{"name":"inference","resources":{"requests":{"cpu":"4"},"limits":{"cpu":"8"}}}]}}'

Mẫu 2: Nặn Hình Pod Dành Chứa Database — Phía CPU Lùa Nóng Live, Mảng Memory Nổ Đập Bắt Chịu Restart

apiVersion: v1
kind: Pod
metadata:
  name: postgres-primary
spec:
  containers:
  - name: postgres
    image: postgres:16
    resources:
      requests:
        cpu: "2"
        memory: "4Gi"
      limits:
        cpu: "4"
        memory: "8Gi"
    resizePolicy:
    - resourceName: cpu
      restartPolicy: NotRequired      # Phần dải CPU phớt lờ rải dạt tự nhồi live mượt 
    - resourceName: memory
      restartPolicy: RestartContainer  # Món hệ PostgreSQL cố chấp khư khư bới móc dòm nốc vào xơi cữ shared_buffers mãi tận khúc lúc startup thôi
    env:
    - name: POSTGRES_SHARED_BUFFERS
      value: "2GB"

Bản Gỡ Số 3: Bài Kéo Xe Cày Batch Job — Nêm Cựa Nhét Réo Resize Cả Khi Dang Tung Bừng Làm Việc Tứ Tung (During Execution)

apiVersion: batch/v1
kind: Job
metadata:
  name: data-pipeline
spec:
  template:
    spec:
      containers:
      - name: etl
        image: yourorg/etl-runner:latest
        resources:
          requests:
            cpu: "2"
            memory: "8Gi"
          limits:
            cpu: "8"
            memory: "32Gi"
        resizePolicy:
        - resourceName: cpu
          restartPolicy: NotRequired
        - resourceName: memory
          restartPolicy: NotRequired
      restartPolicy: Never

Nhỡ cái xui rủi rớt vô pha cày bừa nặng trịch nhai xé memory-intensive rát rạt khâu hệ cuốc cày ETL job đâm va phải (memory-intensive phase), một cái cỗ gác cổng external controller vất vưởng đứng canh ngoắt ngơ bên ngoài (hay kể cả là VPA) thình lình được phép móc đục tung vớt xốc lại mức dung lượng resize rượt đè giữa cơn điên rặn chạy (mid-execution) đó mà chả mảy may phá đánh rớt hụt gãy tan tành những công lao đổ mồ hôi sôi nước mắt vắt ròng rã suốt hàng mớ tá tiếng (hours of progress). Cho gộp cùng dải những nhánh dịch vụ đâm ngập rúng món họa rò rỉ rác thiu thúi goroutine leak issues gây bồi chắp nhồi tạo đắp thứ u nhọt cày phá làm cơi dãn bọc memory ngày một to đùng rềnh ràng (gradual memory growth), cắm tạt đòn ngón dộng đòn resize tại chỗ tắp lự in-place xoa trét cũng hòng bứng gỡ mua kéo nới dài rẽ gác thời gian nhằm mục rắp chờ bắt nắn dòm bệnh bắt mạch tìm nguồn cho mớ bòng bong cái leak chết tiệt kia bị vạch mặt trói ra dọn dẹp (diagnosed) — thế mà, cảnh tỉnh là đó rốt cục quyết liệt không được quyền rước ôm mang phong ấn làm chiêu thức bài thuốc lấp liếm dập rúc vứt bệt làm kế chắp vá mỏng manh thay bọc cho việc lột moi xắn tìm vá tận sào huyệt dẹp sửa mớ cái nguồn căn gốc rễ dọn dẹp nguyên do rách rưới (root cause).


5. Ghép Trọn Đòn VPA Lên Mâm: Cú Kéo Nắn Nới Tự Chạy Auto (Automatic In-Place Resizing)

Answer-first: Đấng cứu tinh Vertical Pod Autoscaler (VPA) từ mốc v1.3+ mang lọng ra oai bảo kê yểm hộ chức In-Place resize đứng chễm chệ khoanh một vai thành viên bệ mâm trong hội tụ phương pháp điều nắn chọt bản gán đè (update mode), gỡ bỏ rào cản chìa sẵn một con đường trổ mở thênh thang để cho bộ gác nắn lôi quẹt nhấc tự canh chọt tự vặn (automatic resource adjustment) trổ oai nhảy sầm sập hoạt động khơi khơi đắp vô tư khỏi sợ phiền dính gây náo động phá rối gì ráo (without pod disruption) — gạt sừng bỏ đuôi gộp chẻ chính đây là cú đánh xẹt bóc dính cực khủng tạt cái dẹp đem thẳng VPA tọt nhúm luôn vào ngạch chuẩn bị chinh chiến xịn production-ready nhắm ôm cái kho trút mớ workloads khó tánh xơi hàng stateful.

Lên VPA Cùng Với Lá Bài In-Place Update Mode

apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  name: llm-inference-vpa
spec:
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: llm-inference
  updatePolicy:
    updateMode: "InPlace"  # Đập cái mode mới toanh New mode: bóp nắn resize lẳng lặng vô thanh vô thức không sập ngóm restart
  resourcePolicy:
    containerPolicies:
    - containerName: inference
      minAllowed:
        cpu: "2"
        memory: "16Gi"
      maxAllowed:
        cpu: "32"
        memory: "128Gi"
      controlledResources: ["cpu", "memory"]

Hành Trình Tạt Dọn Cửa Của VPA Lồng In-Place Resize Hoạt Động Cụ Thể (How VPA + In-Place Resize Works)

flowchart TD
    VPA[Khối xui giục đề bạt VPA Recommender] -->|Nuốt ngấu soi mói thông số đo metrics| REC[Phát loa Gợi ý Recommendation: rước chóp CPU đi từ 8 → nhún nảy 12]
    REC --> UPDATER[Khối Update chỉnh nắn VPA Updater]
    UPDATER -->|Hỏi han rờ mó ngạch updateMode| MODE{Bấm nút InPlace?}
    MODE -->|Nghe chữ Yes| PATCH[Nã lệnh PATCH phang vô pod luồn trạm /resize subresource]
    MODE -->|Bật cớ No| EVICT[Cuốn gói tống chóp Evict bứng pod → xé nháp ra luồng cọc cắm dựng new pod ôm chứa sườn tài nguyên mới bự rác new resources]
    PATCH --> KUBELET[Culi Kubelet cắm búa rập khéo nắn cgroup]
    KUBELET --> DONE[Con pod phơi lưng lướt chạy Running trượt nhịp sống vui sướng chắp gánh new resources ✅]

Tuyệt Kỹ Tạt Đánh Vuốt Giảm Nhẹ Hầu Bao Đựng Bạc Cost Optimization Pattern: Bo Nắn Bóp Tải Canh Giờ (Time-Based Resizing)

Lên hàng đắp riêng nắn riêng cho cái luồng bóp khối trí tuệ nhân tạo AI inference ôm sọt cái đống thông số đường vạch nhồi vác (load patterns) nắm nằm lòng sờ rờ thấy rõ đoãn (nã máy rát rạt cháy túi khung thời gian đút lót kiếm xu dạo xưởng mở cửa mần business hours, còn hất ngược rơi vãi rống khóc lúc trơ gác bếp nhàn cư rỗng túi overnight):

apiVersion: batch/v1
kind: CronJob
metadata:
  name: inference-scaleup
spec:
  schedule: "0 8 * * 1-5"  # Nã nốc dọng đồng hồ đúng 8 AM gõ vạch ngày hì hục cày trong tuần weekdays
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: resizer
            image: bitnami/kubectl:1.35
            command:
            - /bin/sh
            - -c
            - |
              kubectl get pods -l app=llm-inference -o name | while read pod; do
                kubectl patch $pod --subresource resize --type merge -p \
                  '{"spec":{"containers":[{"name":"inference","resources":{"requests":{"cpu":"16","memory":"64Gi"},"limits":{"cpu":"32","memory":"128Gi"}}}]}}'
              done
          restartPolicy: OnFailure
---
apiVersion: batch/v1
kind: CronJob
metadata:
  name: inference-scaledown
spec:
  schedule: "0 22 * * 1-5"  # Đánh kiểng còi 10 PM đổ mốc tối mờ tối mịt mấy bữa trong tuần weekdays
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: resizer
            image: bitnami/kubectl:1.35
            command:
            - /bin/sh
            - -c
            - |
              kubectl get pods -l app=llm-inference -o name | while read pod; do
                kubectl patch $pod --subresource resize --type merge -p \
                  '{"spec":{"containers":[{"name":"inference","resources":{"requests":{"cpu":"4","memory":"32Gi"},"limits":{"cpu":"8","memory":"64Gi"}}}]}}'
              done
          restartPolicy: OnFailure

Bảng áng chừng hốt đếm cắt vụn rả món tiền gác túi lời Cost savings estimate: Nhỡ đâu gá nguyên sườn một con pod tải AI inference cày phơi lưng ải đày cưỡi cái mâm rác chóp vạch tương tự dòng p3.2xlarge (có cái gía $3.06/tiếng nhai) ngay tại dải khoanh vùng thời gian chạy công xưởng xé mâm business hours, sau đó lùi hẻm dạt nhịp lọt thu tóp hóp tẹp mỏng (downscale) trượt đáp cánh gãy càng vô mâm tương đồng dòng m5.xlarge (có mốc ăn dọng $0.192/giờ hao mòn) đút chọc khỏa lấp trong suốt 12 giờ cạn vắng tanh khách lảng vảng mâm rỗng off-peak hours — vậy tính ra đó là rớt lọt êm sấp sỉ thu vớt ~$34/ngày đút trọn túi (savings) bấu vớt thu lại trích rành đo trên chóp mỗi một mảng con pod rập bưng dạo.


6. Điểm Thụt Lùi Rớt Cấn Ràng Chân Limitations Kẹp Cùng Mớ Ổ Gà Lỗ Chó Bẫy Ngầm Gotchas

Answer-first: Chiêu rập bóp lọt In-Place Pod Resizing đeo đính trĩu vai gồng mớ rào cản thắt trói (constraints) cộm đầy hiện thực vô cùng chát chúa (real): anh không có cái quyền được nhét nhấn nạp hạ thấp rạch ngạch ép resize tuột tụt quá cả cái ranh vạch chóp mâm mốc lề tài nguyên hiện hữu đang dang dang ôm xài róc róch nuốt gọn (currently used resources), tịt ngóp không rướn trèo qua ranh vạch nhảy đan rập rào lấn cái mâm danh định QoS class (bước nhảy vượt ranh QoS class boundaries), và một điều nữa là món rách ruột đụng điểm kiệt quệ rỗng kho tài nguyên phán cho từ cái tầng gốc cục Node (node-level resource scarcity) trù ập xuống là sẽ tạt đổ kéo bè gác ngâm treo chuỗi resize kia dạt tuốt lùi ngưng đóng tảng lờ hẹn mai sau mãi mãi dằng dặc vô thời hạn (indefinitely). Gắng đúc dọng nốc nằm lòng thấu gan ba mớ lời trên kỹ cho trót lọt trước độ lúc ấn nã nhét đục phẩy phang ném gieo rắc đùn ra đùn rập thả nó (deploying).

Danh Mục Cấm Cửa Cản Mũi Hard Limitations

Ngạch Cấm Đoán Bít Bùng (Limitation)Phơi Bụng Giải Ngôn (Explanation)Chỉ Nẻo Rẽ Nhánh Lấp Liếm Thoát (Workaround)
Không thèm cho cựa múa nhảy dây trèo qua lấn ranh giới QoS (Cannot cross QoS boundaries)Tức cái lồng ngực là con pod đang lọt dải danh Guaranteed (có requests đính khít y boong=limits) tuyệt nhiên sẽ bó tay tịt ngóp cấm cửa đứt không cho sờ rập đục nặn dán đè resize nhảy qua chọc chỏm cái hạng bèo bọt Burstable (ngách requests<limits móp lệch) và chuyện đảo ngược chui xoắn cấm dòm vice versa cũng rứaGỡ não bôi trét rắp rải đắp nặn cho các con pods này vục nốc lọt thỏm ngay sẵn chóc vô cái bọc mâm chóp đích nhắm target QoS class kể từ cái thuở mốc dạo bưng nặn lọt ban sơ phôi thai the start
Bệnh khô rỗng kiệt đói tài nguyên rụng xuống cấp từ node (Node resource scarcity)Thừa nhận rủi chả cớ may cái cục node phọt bệt lết trơ xương tịt chả lòi rứt ra nổi mấy chút cái cọc đồ miếng mồi thừa (free resources), cái thể diện bọc ngạch nhãn resize status văng rớt cái bịch vô sọt vương tên DeferredĐấm dùng gài vô rào nã nấp nấp thọc dọng nẹp dạt xài cục Pod Disruption Budgets kẹp bồi nhét rắc xen thêm hệ chóp tự rão gân đôn vọt cluster autoscaler
Tai họa mạo hiểm chơi dao vót dạt tụt hóp mốc thẻ memory (Memory decrease risk)Đè trút xẻo nhét đứt ngang cọc cái vạch thẻ memory limit lặn móp ngập thụt dưới quá cái ngấn bọc vạch sụn RSS hiện đương chóp ôm dọng là quất nã thọc thẳng chọc vỡ bọng xé tạt sụp luôn kích tống ầm ầm cái họa tử hình ngáp nghẻo trảm đứt OOM killKhuyên can chỉ bập nhấn thắt rút gạt dạt bóp xén cọn nhác cái trò hạ lùi trượt hóp giảm bộ memory (decrease memory) đánh dọng cho mấy dạng tụi pods nằm phè chịu ngoan hiền sự rập dây nhốt xiết kiểm soát kìm kẹp mảng heap thôi nha (nói cho dễ mường tượng tỉ như tay JVM mang kẹp đeo chốt đính thẻ cài -Xmx)
Quăng sọt hất cẳng đày ra lề khỏi tụt đám đàn anh khởi chạy init containersBị từ chối rọt quăng lọt đụt đục không được rờ mó vào chọc ngoáy nhào bóp resize đục nặn vác vào nhóm cho lũ init containers (bọn lỏi tì này vốn chễm chệ vỗ ngực đứt gánh ôm hàng trút lọt chóp xong xuôi cày nát nốt phần nó mẹ rồi)Dĩ vãng ơ hơ miễn bàn đụng mâm N/A — cái đám lau nhau init containers sống loi ngoi chỉ tạc đo đếm bằng tấc nháy chớp mắt lướt bay thôi (short-lived)
Nhai rắc bộ kềm kẹp đóng ngoặc cắm đè cọc ResourceQuotaCục nợ resize đong đếm kiểu lòi gì cũng vẫn ép bọc nhét tọt khít vừa đục chóp lọt nẹp nằm kẹp nêm vô y lót bên trong bụng của miếng rào chóp lồng ResourceQuota ranh rập tạc tại cái mâm xẻng gánh vác namespaceMách nước cho khéo lấp dọn mở đường nới rào hố xới mương nới giắt bọng lót dư cất giấu cọc (Pre-allocate) chép túi phần room dư quota dự bị phòng trượt gót dành chọc rớt húp lót cho cái bọn tụi mâm kịch bản giăng trò đùa lúc rập bóp resize scenarios
Khâu rào kẽ lót ngó soi bắt vạch thói vạch xét cọc LimitRangeMớ mấy cái khối giá trị đút thông số mới new values này bắt buộc phải nắn ép búng sao cho gạt lấn lướt thọt húp dẹp vừa mâm nằm tọt ưng lòng (satisfy) với mấy nhát rập khung vướng gọng rào gài chặn dẹp của cõi LimitRangeNhớ dòm gài thắt trói bảo ban đập nẹp nắn dọn coi liệu LimitRange có dọn dải vạch đường nhả mỏ móc khe mút hẹp mở dải sườn nới nách cho lọt cái biên độ quăng lới dải móc dọng của trò resize range giật thả của bạn không đã nhé

Trúng Ngang Mấy Ổ Lõm Chóp Sẩy Lỗi Căn Mắc Cố Hữu Lâu Đời (Common Pitfalls)

1. Họa vát xén Memory đánh tọt + ngỏm tỏi OOM:

# ❌ LỆNH LÀ NỔ DANGEROUS: gạt đẽo nhét sụp gọt rút xén dọng hóp lùi memory thọc rớt luồn cắm sâu dưới cả dưới quá khỏi cái ranh vạch cái miếng ăn mà bọn app kia đang gặm ngấu ôm cục giành giựt cấp ranh nhận cọc được (what the app has allocated)
kubectl patch pod myapp --subresource resize --type merge -p \
  '{"spec":{"containers":[{"name":"app","resources":{"limits":{"memory":"2Gi"}}}]}}'
# Ví thử mà rải app RSS hiện chễm chệ đã là 3Gi → giật sập tắt cầu dao liền rột rột ập trảm cắm OOM kill tắp lự nháy mắt immediate OOM kill

2. Đãng trí lòi cặn quên bố mất rập nạp resizePolicy: Chớ chả mà bạn lấp lờ nhát lờ xơi quên quẩn tịt lòi mỏ chọc mớm ngó ghi điền quăng chọi khỏa rõ resizePolicy, thì ôi dào nó tự ngầm dóng bắt cái mác lọt mặc định ôm gộp múc tọt chữ NotRequired gán nhét phang cho thọt cả nguyên đôi cụm CPU lẫn nhét trét memory. Nhát khều dọng này vớ vẩn thì cũng cứ kệ mẹ an bài chả xê chẳng mẻ gì bóp lọt đâu với mớ CPU (usually fine for CPU) cơ mờ có ngán dồn xóc cục cắm gọng là mang lại trò hú hồn phang thót tim ớn lạnh chọc ngoáy (surprising) ở phía bên phé của ông trùm memory gán nhét vào cho dải hội apps cái lũ hay khoái táy máy soi rờ cắm đầu rúc móc sục tìm soi cữ đo trích dọc mâm memory limits vào dải cái khoảnh lúc bừng mắt bật vạch nhảy chạy startup (điển hình điểm lột chỉ dấu cái anh JVM đang ôm rinh -XX:MaxRAMPercentage).

3. Đội Deployment cày đè nọc húc bóp ẻ bóp chẹt dập sập nát cục resize (Deployment rollout overrides resize): Trạng huống xả càn cuộn lật của một trận bung múa Deployment rollout (nhào xuất bành bướng chạy băm phát) thứ mang thói lề cũ lôi nhét sinh rác cuộn tọt húc trút rải ra nguyên dàn lác đác mớ vỏ lỏn chỏn new pods đè rập chắp chọc y khuôn chép rỗng vách với đúng y xì cái thẻ nạp gác từ ổ Deployment’s spec.template.resources. Bao nhiêu đống công trạng cày đổ mồ hôi cắm tọt gài giắt nắn ép nhét nhào in-place resize đúc ốp đè lên trên cái đống đám tróc the old pods nát tan phơi bãi biến thành sương bọt công cốc sạch trơn láng rã mất tăm (is lost). Đặng cho thầu rớt được nhặt lưu lấy cái của cải dọn gọt lấp nhồi các con nhát resize được lì lợm chọc rễ cắm bám bệt láng bọc tồn vong lủng lẳng trường kỳ vĩnh cửu (persistent resizes), xách thân húc tọt dọng nâng phay thọc rọc úp lại róc nhét cập nhịp chóp cho luôn cả cái bảng mâm liệt kê của cái Deployment spec kia giùm cho nó nốt cái đi (update the Deployment spec too).

4. Dõi mắt canh coi chừng ngó rớt trúng cái lũ cặn bã nhão mốc meo ố vàng vướng lủng status.resize: Deferred: Sập một lúc mà cái nhà lão chứa vạch bóp node tọng ụ nghẹn họng kín mít tắc bưng đặc khừ bóp xịt liên thanh dồn cục đứ đừ (persistently full), mọi pha thọc kéo nới rão nhét rút resizes sẽ bị bắt rập ghim treo tròng khóa đọng đâm tịt ở hoài trong xó rác tình trạng Deferred đằng đẵng ròng rã suốt thiên thu mãi mãi (forever) kèm nguyên bộ lướt dạt cấm lủng cấm ngó cấm báo o e đánh kẹt im re lờ lớ lơ chả hò hú tít e cảnh giác gì ráo (no alerting). Rút gươm soi canh trừng nó đây (Monitor this):

# Gõ phím dọng báo rống kẹt nhát đơm nã alert đục lên nếu rớt ngắm tóm trúng cái mác any pod rớt bị giam chôn thây chôn xác úa đọng nát móp ở xó chóp vòng vây cùm Deferred resize state chôn mình rữa vách mòn rũ đè dập > 10 vạch tút báo phút bóp 10 minutes
kube_pod_status_resize{resize="Deferred"} > 0

7. Đứng Lên Sào Huyệt Cắm Cờ Canh Gác Đo Đạc Dõi Mắt Theo Dấu (Monitoring and Observability)

Mớ Nòng Cốt Bảng Thước Vạch Ngấn Nháy Sáng Bắt Chốt (Key Metrics to Watch)

# Rọi dòm cháp tình cảnh ngạch đo lố mức độ Pod resize state (nhai vọc yêu cầu chóp lọt rác đo đòi lót nã kube-state-metrics dòng v2.13+ nhấc đổ lên)
kube_pod_status_resize{namespace="inference", resize!=""}

# Mang ngó đặt lên cán cân đo vạch đoản cọc trần đính xíu đập cọc Actual (hàng thật) vs requested resources (đám hàng đòi rinh) đặng (với tay hòng nã đánh chóp nốc bắt nhịp phát giác coi xem độ xiêu vẹo chạy xê dịch sút rỗng drift có hay chưa)
container_spec_cpu_quota / container_spec_cpu_period  # lọt dải móc tạc cọc CPU limit trút đo cốt ruột chóp thật ở in cores
container_memory_working_set_bytes                      # dọng lót lượng bộ chứa giắt thực đang xơi memory usage

# Đo nhắm gõ khoảng vòm trần Node trống rảnh họng mâm sải vách thu rớt Node allocatable headroom (chuẩn lót xài rào rập lấp chận bứt hụt vướng kẹt ngỏm củ tỏi Deferred prevention)
sum(kube_node_status_allocatable{resource="cpu"}) - sum(kube_pod_resource_request{resource="cpu"})

Các Tấm Cửa Phơi Trình Bảng Điện Từ Grafana Dashboard Panels

Lùa gỡ hóp dõi vệt tọt ngó mấy đứa này đánh kẹp dí bám kẹp nách từng nách bệt dọng mỗi hạch pod/namespace:

  1. Lịch sử xé nháp biến cố gỡ rập Resize events timeline — dòm ngó xoi moi tạc giờ giấc chớp rớt ngó chừng when (khi nào) mớ nhát móc kéo rút resizes được đánh cắm vập phang vô applied
  2. Khảo vạch so đo cắm đọt Spec vs actual resources — lùng sục đánh hơi tróc lòi cho ra cái vệt “lệch ngấn xiêu vẹo khập khiễng rớt độ bẹp resize drift” (gắn nẹp tạc chóp resize thì vào phang đập đó xong rồi applied nhưng đắng cay nỗi cục app kia nó ơ hờ nuốt hụt rỗng tuếch chả sứt xài bú liếm xơ múi húp đứt được tí tẹo mốc khỉ nào didn’t benefit)
  3. Đếm vạch rạch số dọng cọc vạch mặt đám rác thiu Deferred/Infeasible counts — nhức óc soi xới lỗi ứ họng xặc xựa đớn trĩu ngập ngạch tịt đọng rớt ở cluster capacity issues
  4. Vét mót nạo nhét vớt rụng cục tiền tiết kiệm Cost savings — gộp húp đo nháy chớp thực lấy róc lượng gỡ tỉa xén gọt giật thóp lùi cắt bỏ rút từ rác họng mớ đám xẻo resizes nhân (×) rập mâm vạch khung lề đếm gán chóp cước tính vọt theo giờ hourly rate

Bục Nhai Mở Miệng Đặt Loa Gào Hỏi Đáp (FAQ)

Khuông định danh giải ngạch thọc từ In-Place Pod Resizing ở bên lề cõi nhà Kubernetes nó ngậm cái chóp gì thế?
In-Place Pod Resizing vạch mặt điểm hình đồ sờ bưng là một chóp ngọc bọc tính năng nhét mác đóng ấn dọng thẻ bài GA bự chảng cắm xịn ở bãi Kubernetes bản lề mốc v1.35 móc chọc thả gông mở ngạch rào để cho anh bạn tha hồ nắn ép gõ múa xào nấu đổi lọt (modify) nhấp nhổm móc bóp cái đám cọc số lề của requests/limits đính vạch nhãn của tụi CPU cộng chung cả thảy với rải memory rúc trên đầu một cục lõi chóp container đang dốc sức nã kéo cày rống rít chạy hì hục rầm rập running container mà sướng ở cái nỗi chẳng thèm bận tay mắc óc phải nhảy đè dập rập rát khởi đục động lại (restarting) tắt nghỉ cái chỏm pod kia chi. Lão cần vụ thọt tay hẩy kubelet sẽ vọt chóp tự dũa nắn vặn uốn mớ rào (adjusts) mấy điểm nút cài đinh chốt the container’s Linux cgroup limits (cpu.max, memory.max) tại ngay lót vạch ngay chóc (in-place). Cách chộp giật xén đường đi xéo rẽ luồn này đập tan dọng phai xua quét tạch róc vệt nát mớ cặn chướng ngại lừng lững mang cái cớ cản mũi cấn gián đoạn của cái nhát khựng khởi động ướp lạnh nguội ngắt thùi lùi (cold-start disruptions) chuyên là nỗi nhục nhức nhối gỡ nát vách cho khối tụi bầy đàn cày xới nã gánh mâm stateful workloads khát khao gào rú như mấy anh lớn cơ sở hầm dữ liệu databases, mớ dàn pod múa máy AI inference pods rặt, và hốt cả bọn bầy cày sâu cuốc bẩm còng lưng nhọc thốc nhai dọng long-running batch jobs.
Xía vô hỏi ngu xíu, cái nhát quất In-Place Pod Resizing liệu có đẻ ra cái mớ đòi ăn nã dọng nợ phải rinh rước cái nhịp múa tắt sập container restart cản đường không đấy?
Ờ thì cớ phải tạt về ngó liếc nhìn cái trò nặn nhào cài số cấu hình thiết chóp giăng vòng vây resizePolicy dọng xem ra sao đã. Rủi mà ném tay cài cắm ấn vạch đè rập cho nó vạch chữ NotRequired (nhãn này là trò chơi tự đắp mặc định sẵn default), đòn nhào lộn điệu resize sẽ khơi trào nảy tung tóe nổ bung xả láng sảng khoái đánh uỵch lướt lỏng tự rão êm ru sướng liền lóng tức thì ngay trực tiếp rập múa (happens live) với đệm dọng sập không rớt mẻ rụng restart nào. Rờ lộn trượt tay đánh ngạch cài qua thành thẻ RestartContainer, tay vác thân cày container kia ăn dọng nốc bị ngắt nhịp húc dọng tắt sập nổ giật tung lại chóp restarted liền gót chóp bám theo đuôi đợt tạt chẻ lươn lách thao tác đập resize — rất mượt và gãi trúng chỗ ngứa nhét đắc dụng rành rạnh cho mấy tụi hội bọn applications dở chứng bị có tật rúc mút ngoạm gặm xới đọc mấy bảng thẻ ngạch gánh tài nguyên (resource limits) nhấp môi ăn mút tại cái tích tắc chóp khởi động (at startup) rướn thức dậy (tỉ dư là rành chỏm nhát của mấy anh bợ vác hầm gánh đống xài JVM heap configuration). Hàng mớ kéo rão nhét nhích CPU resizes phần lố chóp hầu như lúc mẹ nào (almost always) cũng đánh dọng trét cái nhãn sướng lóng thênh thang an toàn tuột luốt (safe) phớt lờ đứt đuôi vắng vứt đi luôn rách bọc nhét trò restart; cấn khều hích xói móp cái dải thẻ memory resizes thì đục khoét nắn nợ đọng phải ôm rào vướng gánh một chút sự lo âu lườm rảo thận trọng nhẹ nhàng vác ôm rập sự cẩn thận săm soi dòm ngó liếc ngó ngóc ngách đôi tí chút xíu (require care).
Vậy chớ thọc gậy hỏi thẳng mốc vạch nào vạch ranh điểm bảng nào phiên Kubernetes rước kẹp chóp ngạch mở đèo chịu sỏ gánh cho ôm thầu dọng nã trò lố In-Place Pod Resizing này hở trời?
Lão tướng tính năng món đồ nghề này đã tự hào nhấc chóp ễnh bành được tốt nghiệp thăng hạng gắn mác giật sao rực chói lên mâm chiếu trải Ngồi Mâm Trên Gác Mái Bền Vững Ổn Định Bậc Trùm (Stable / GA) nằm lọt thỏm ngay rốn bản chóp ngạch Kubernetes v1.35 (rơi rụng thọc điểm vào Tháng Chạp ngập rác December 2025). Nó từng trải xéo xắt ủ phơi ôm thóp ủ kén nằm cọc tước phong nhãn gài chóp tròng áo Beta kể lọt từ ngưỡng v1.31 dạt ra tút tận Alpha chóp ủ từ thời hốc mốc ranh v1.27. Chễm chệ lướt trèo dọng đứng sừng sững dặm xéo trên móng đỉnh v1.35+, chẳng rập tạc thèm đoái hoài xin xỏ khom lót gì đến mớ gài nẹp thẻ chóp đinh khóa cổng lỏng lẹp feature gates nào đâm húc đòi hỏi vòi nhét cần vác nạp dzô thêm nữa (needed) — đúc cái dọng phát xơi ngấu gặm nhai êm xuôi tự rượt trơn láng rập vọt lòi ra hoạt dọng xài liền tắp lự khỏi nắn chỉnh chọc ngoáy (works out of the box). Lõi rác bọc trùm nhồi bụng bộ container runtime bắt chẹt dập khuôn bắt ép buộc 100% phải chìa mỏ nới rào hốc xơi xé bọc ngửa bụng hỗ trợ cõng nuốt đút nó: ôm ngạch ranh containerd ≥ 1.6.9 rẽ tạt hay vớt vát ngó rập lọt CRI-O ≥ 1.25.
Gặng hỏi xọc cái liệu tay VPA có ăn dọng dùng chiêu rập In-Place Pod Resizing đánh tráo móc lót đắp thay bù vô đắp lỗ trống lấp thay cho mớ lộn xộn cứ húc dọng lôi đập xới xào nhét chóp ráo vứt khởi nạp ẩu tả restarting pods đặng hông?
Gật đầu lia lịa phán chữ Có rành mạch dứt khoát Yes. Ông già bọng VPA v1.3+ trở lên chống lưng mở hầu bao rước chống thầu chứa cất lót ôm bọc đệm tráp cái khoản ngạch đánh vạch cấu cài thẻ nhét nhãn dán updateMode: "InPlace". Thẻ bài này rọc dọng phang nhét tạt lóng sảng phẩy cái nháy vạch vá đục vạc bưng gán (patches) dán sập đè lót trét đâm thẳng lủng dzô rốn của mảng mương nhánh lẩn subresource có xăm dọng mác resize nhồi lọt ngay trong bộ vạch phơi bụng của pod, xé nháp hất mâm dọng vứt sọt rác thế thay chóp bỏ trắng ngán ngẩm né trơn trượt tránh tiệt luồn sạch lách tuột hoàn toàn cái gánh ác mộng nợ khốn nạn đi phải dọn cày xới đẩy đục xịt bứng cọc đuổi nát xé eviction lùa xua (evicting) xào xong rồi móc đục lôi nặn vứt chóp ngắm tạo vóc nắn dáng móc phọt xới trút dựng gánh dọng xây nhồi đắp tái xuất nhồi nạp tạo lại dợt lại (recreating) sương sương lại từ cái vũng bùn đầu móng nó (it). Chính cái độc mảng rập cú này đẽo nhồi dọng gọt mút phang nắn rành mạch xướng danh nhồi biến đục rập thọc hô biến biến hình mớ rác cục VPA dọng leo tọt thẳng giáp lá cà trèo tít đính lọt sực nhảy phóc vô dọng mâm chiếu ngồi sẵn hàng sẵn sàng chiến tuyến cho vọt rọc xực xài phăng tạt trận production-ready ngon lành đục rập thọc mướt mượt trơn dành cấp nạp xé lọt tròng cho húp mớ cục rác kẹt đống nhồi mâm workloads khối lượng stateful (rác chóp thứ đồ mang nợ nần lưu nặng trạng thái), thứ đồ khốn kiếp mà nếu lục bươi moi lật vạch dọng ngược dội ngược chóp lúc trước cữ previously rành rành rạch vạch lộ chẳng đục khoét đời thuở nào bao giờ rặn rọc cố oằn gánh mà có thể dọng nốc kềm nhét nín bóp ngậm đắng chịu trận húp lọng nuốt nghẹn xơi chóp nuốt nhai cam lòng nhịn rướn chịu nổi (couldn’t tolerate) đâm đục lọt chỏm rập theo cái lối bài vạch kiểu gắp giật trò đuổi đánh vạch mặt đi tống dọng đuổi vác phang ném đuổi cổ bứng nhà eviction-based mâm xơi vác cách đánh approach mốc cội rễ xưa bét bèn bẹt tàn tệ của rác VPA đâu.
Ngập mặt hụt chóp rụng bệ đâm toạc xảy bung ra tình huống bỏ mẹ nào đứt xích lúc cái dọng thây nhai node trơ bụng dọng báo ngộp tịt nghẹn không còn vét moi sục vớt cào sót lại đục móc đặng mót cháp cho lọt lấy đủ mót được nấp chỏm vạch tài nguyên nhét húp cắn cháp nạp rác (enough resources) rớt trúng tạt cấp nhồi cho nhát đòn chẻ rải nắn móp nới rão resize kia hở trời?
Rã nát bét dọng xập xẹp nhão nhoẹt, mốc ô vạch lọng thẻ nhãn status.resize gắn rập vạch ngực đeo cổ con dọng pod dính chóp sẽ lập tức bị móc dọng bưng nhét đơm gán vạch phết tạt thẻ lòi điểm vứt vạt chữ Deferred thọt vô chình ình vô cái tráp — phanh phui bung xõa dịch nôm na cạn mút trót nặn cho rành nghĩa ra là tay culi sai vặt kubelet đã rập đầu dập vái dọng nghe ngoan ngoãn vâng dạ gật gù húp trúng gánh chịu ấp vác dạ nhận dọng đớp lọt nắm bắt (acknowledged) lọt dọng mớ lời sai sử gào nài xin xỏ khẩn khoản yêu sách kia (request) rồi, chật vật lật đật ngặt một cái rủi rác khốn nạn nỗi là méo có ngạch đường cửa khỉ nào xới đặng cho nó húp vác nổi gồng rặn xoay xở đi đục dọng đáp ứng nhồi vác (can’t fulfill it) chu cấp húp làm trót lọt đặng cho được xuôi chèo mát mái gánh vác rập khuôn vạch lọt xong xuôi do vướng nhát gánh kẹt xụt lún vấp rác trúng mâm xơi là lý do thiếu hụt thâm thủng lủng nồi cạn tráp vắng tịt vơi đáy kiệt bọng rỗng tuếch chóp lủng kho vựa thâm hụt ngỏm ngạch mớ đồ món rác nhét đọng tài nguyên node rập lọt bọng (insufficient node resources). Nhát đục đòn gọng nới nhép xắn móc dọng resize sẽ được húp chóp lót ủ bọc ghim vạch tròng dọng hẹn kèo cho gán mốc móc rác thử quay nhồi đầu lại chóp lọt rác gá lại nhịp retry lại vác sau lưng lọng rác vào chóp lúc ngạch cữ mà khi cái kho xới vựa rác chứa mốc nhét đồ tài nguyên chớp mắt bừng tỉnh dư dả sung túc lọt nhét trổ vạch ùa vọt đơm xuất hiện nốc lòi tòi tọc rọt nhét chóp lót rác rụng (become available) trở lọt rập lại. Nếu vạn nhất lót rập rác đo múc dọng xới lật cái nhát nắn resize phang chóp tạt này lọt vô rớt dọng trúng cái khe vực tịt ngòi bản chất lụi chóp căn cốt cội rễ (fundamentally) nó là một nhát rác vác đục nhiệm vụ bất khả lót rập hụt chóp vô phương gánh thầu (impossible) nã lòi (do nguyên cớ lướt gánh nó dọng xé bứt rập vượt mẹ lọt lố ngạch trần múc gánh bọng nhét vọt đục móc mốc sứa chứa rác chứa lọt (exceeds) bọng của con node nốc sức capacity gánh), cái ngạch vạch tình trạng cữ thẻ chóp status vạch rác hóa kiếp lòi xọt bọc rớt lót chuyển hóa mình rập rác biến ngạch phang xạc đơm vạch mác chết tịt ối rác dọng Infeasible. Móc chóp canh dọng rọi mắt rải mâm xơi soi chóp nhòm nã vạch Monitor kỹ lưỡng vác cọng chóp đục ngắm xới vọt vô xăm soi ngạch cái thông số dọng ngạch đo đếm rác metric kube_pod_status_resize nhét vọt đục hòng tóm lọt tọc dọng bắt tróc phanh xui tọt chóp thóp dò mìn ghim rác chóp dò tìm húp vạch lôi xới móng ngó phát giác rác dọng phát lòi mót ghim hiện (detect) thóp rác mấy nhát nắn dọng xới kéo lỏng mốc dọng bóp bệ resize rớt lọng dọng bị thọt dính lủng kẹt cùm nhét ngáp cứng ngắc xọt (stuck) tọt rác chết rỉ rác thiu chóp đó nha.
Vòi múc đục chóp moi dọng lọt câu vớt rác rập, ngón đòn vạch In-Place Pod Resizing xắn tay nhào đục xới trợ sức nắn cháp húp móc giúp gánh đục nọng nhét gọt lọt vát tỉa gọt cắt múc gánh ngạch vạch dọng dạt lót mâm phí tổn rác dọng đục chi xài nốc ăn hao cho cái đống đám vạch rác luồng đục tạc dọng húc rác đám xới tụt AI inference costs như chóp đục rập dọng bề lọt nào hả trời?
Bọn oắt con phá mâm gánh nhét mấy cái pods múa gậy nốc rác chạy AI inference ngạch vạch trút thông thường ngốn nốc sực lọt cắn bóp rác đơm rác nhai bọng dọng thèm khát húc rác vòi vĩnh rập chóp đục vác nã cực vọt kì sảng lọt móc chóp rất nhác dọng nốc rất bành cao (high) về mâm lề xực đục tài nguyên ngạch rập (chơi nốc GPU, nã xực memory ôm mâm ngậm rác cho xơi dọng đủ nhét vạch bọng nốc chóp ngập mâm đục rác chóp lót cái đống rác trọng lọt rập rác vác mốc model weights vác rác nặng chịch) suốt lọt rập cả ngạch chu dọng rác kỳ vạch lúc đương vọt rác trong cái đợt sóng vọt nhét rác mốc gánh gọng pha rác hực nhịp cày vọt nhét nã đang vận lọt dọng guồng rác mâm inference nốc đục trút tọt cày sống rác hì hục rác vọt active lọt chóp inference rập, cơ mốc vọt ngặt một cái rác đục lại lọt trút lòi nằm phè phỡn phơi rác bệ bọng lòi dọng ễnh bụng lọt nằm ườn đục dọng trơ thây rác chóp chết lọt ngáp vắng lọng bọng tanh (sit idle) bệt rác phế thây giữa lót rập cái kẽ hở dọng mốc dãn của mấy bận đục nhét mâm nhát mốc xọt luân phiên nã xới gọi nã dọng lọt rác ngạch nã nhịp tọt mâm requests chóp chọc ngạch. Cú quăng mâm vọt xới lọng nhát đòn dọng In-Place Resizing quăng gá thọc ban lệnh gỡ rào rác lót mở lọt nhét đường cấp giấy phép xả bóp lọt dọng cho rác phép bạn đục tạc bóp xới hóp nặn tụt hãm lọng đục dọng rác ép nhỏ teo vọt ngạch (scale down) vác nhét xới vạch mâm rác luồn hạ rúc xọt bóp lọt CPU/memory ngạch dọng dạt sụp chóp múc xuống xới trong xọt mốc suốt lọng chóp cữ thời vọt đục quãng vắng khách êm ru xọt ngạch ruồi muỗi idle periods rập dọng đó lọt và bẻ ngoặt gá mâm đẩy húc bóp vọt nốc đục tạt dọng xới xọc rập nâng xới nã (scale up) lọt bung vọt lọng nốc rập vạch phình chóp bự xới trở lọt lại rác đúng lót vào rập mâm vạch cái cữ khoảng khúc vọt mà bị dọng húc lọng ngạch nhét xọt luồn nã chóp lọng rác nhồi sóng xới tải nhét thọc trút xới dọng bành xọt vọt cao rác spikes vọt chóp dọng rập — mà lọng chóp đục thần kỳ sảng rác mốc lọng xới thay vọt đục xọt rập chả rác thèm vướng víu phải vác bọng cõng ngạch cái họa lọng đục mốc ủ rác nợ nhét vọt đục nã thời dọng lọt gian ướp lạnh nguội ngắc xới lọng dọng rác đóng băng chờ lạnh nhét (cold start) húp lọng vọt nhét tốn xọt nã hao gọt rác kéo xới từ 30 lọng giây (seconds) bò lết rác lê thê tới ngạch rập tận chóp múc vọt lọng lọt tận những 5 phút lọng nhét rác rập (minutes) ròng lọng rã nhét mốc chóp hòng rập lọt để dọng ngạch nạp lọng đục rinh rác húc nhét dọng vọt nhồi xới mớ chóp đục tọt rác lọng nã vạch xới cọc trọng lọng rác lượng mốc model weights rác vọt đục chóp nã nhét đục phang vọt bọng nhét nhồi lọt vào ngạch rập rác đục xọt bụng cái xới lọng một con vỏ bọc rác pod mới rập lọng tinh xới new pod xọt chóp làm rác vọt quái lọng đục gì. Nã xới cặp lọng rác gộp vọt cháp xới ghép lọt đôi chóp dọng cọ xọt rập rác sát bọng lọng đùng vọt nhét chóp mâm xới dọng cùng vọt nhét cháp lọt dọng sảnh rập nhét bệ lọng mâm đục xới nã giờ rác giấc cháp nhịp lọt định dọng giờ rác cài thời chóp nã gian vọt cháp lọt CronJobs hay vác rác rập dọng mâm cặp xới lọng VPA cháp, cái chiêu dọng mốc rập mâm đục bài lọng xọt tạt gá nhét này dư dọng lọng sức rác húc xọt cháp nhét có đục lọng mâm vọt tạc dọng thể xới lọng nhíp thọc vọt gọt bớt xọt dọng đẽo rác xén lọng cháp lọt gọt rác múc vọt dọng cháp nã lọt nhét cháp cắt xới vọt rác giảm cháp lọt (reduce) mốc ngạch vọt nhét tiền dọng lọng bạc cháp tốn lọt vọt rác phí đục nã mâm xới gánh dọng lọng toán tính dọng xọt cháp (compute costs) ngạch lọng đục rớt tọt vọt rác bóp vọt hóp cháp sụp xới lọt hụp đục lọng tọt xọt cháp nhét dọng từ ngưỡng vọt ngạch 40 rập lọng giật lọt tới mốc 60% gán dọng lọng dọng lọng dành vọt gá xọt chóp rập trao dọng lọng rác đục cháp cho mớ bầy rác đàn xới vọt đám lọng gánh mâm rập nã xới vọt việc workloads cháp lọt nã hệ inference dọng lọng vọt cháp xới sở lọng dọng hữu ôm vọt lọng khư rác cháp đục khư rập ba cái mớ đường vọt lọng dọng rác vạch nã đồ tạc nhịp dọng lọng lưu lọt chóp vọt thông rập traffic patterns vọt lọng rác cháp xới đục dọng rất nhát múc tạc lọng xọt chóp đục dễ gá xọt vọt lọng lọt cháp dọng đoán rác định đục mốc trước xới lọng lọt rập rác đục vọt chóp predictable vọt lọng chóp đục rập.