לפני שמתחילים
לפני שמגדירים את התכונה התאמה אנכית של קבוצות Pod לעומס, צריך לוודא שמתקיימים התנאים המוקדמים הבאים:
- יש לכם אשכול bare metal שפועל.
- יש לכם גישת
kubectlלאשכול. - שרת המדדים זמין באשכול. אשכולות בשרת פיזי כוללים את Metrics Server כברירת מחדל.
הפעלת התאמה אנכית של קבוצות Pod לעומס
כדי להפעיל התאמה אנכית של קבוצות Pod לעומס באשכול השרתים הפיזיים, צריך להגדיר אנוטציית גרסת טרום-השקה (Preview) ולשנות את מפרט האשכול:
מוסיפים או מעדכנים את הערת התצוגה המקדימה במשאב המותאם אישית של Cluster.
עורכים ישירות את המשאב המותאם אישית Cluster או משנים את קובץ התצורה של האשכול ומשתמשים ב-
bmctl update.metadata: annotations: preview.baremetal.cluster.gke.io/vertical-pod-autoscaler: enableמשנים את
specשל המשאב המותאם אישית Cluster כך שיכלול את השדהverticalPodAutoscalingומציינים את המצביםenableUpdaterו-enableMemorySaver:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 annotations: preview.baremetal.cluster.gke.io/vertical-pod-autoscaler: enable spec: # ... other cluster spec fields verticalPodAutoscaling: enableUpdater: true # Set to true for automated updates enableMemorySaver: true # Set to true to reduce recommender memory usageאם שיניתם את קובץ התצורה של האשכול, מריצים את הפקודה הבאה כדי להחיל את השינויים:
bmctl update cluster -c CLUSTER_NAME --kubeconfig KUBECONFIGמחליפים את מה שכתוב בשדות הבאים:
CLUSTER_NAME: השם של האשכול.
KUBECONFIG: הנתיב לקובץ kubeconfig של האשכול.
יצירת VerticalPodAutoscaler משאב בהתאמה אישית
אחרי שמפעילים את התכונה התאמה אנכית של קבוצות Pod לעומס באשכול, מגדירים VerticalPodAutoscaler משאב מותאם אישית לטירגוט של עומסי עבודה ספציפיים:
הגדרת משאב
VerticalPodAutoscalerבאותו מרחב שמות כמו עומס העבודה של היעד.המשאב המותאם אישית הזה מציין אילו פודים הוא מכוון באמצעות
targetRefוכללי מדיניות לגבי משאבים.apiVersion: "autoscaling.k8s.io/v1" kind: VerticalPodAutoscaler metadata: name: hamster-vpa spec: targetRef: apiVersion: "apps/v1" kind: Deployment name: hamster resourcePolicy: containerPolicies: - containerName: '*' minAllowed: cpu: 100m memory: 50Mi maxAllowed: cpu: 1 memory: 500Mi controlledResources: ["cpu", "memory"]מחילים את מניפסט
VerticalPodAutoscalerבאמצעות הפקודה הבאה:kubectl apply -f VPA_MANIFEST \ --kubeconfig KUBECONFIGמחליפים את מה שכתוב בשדות הבאים:
VPA_MANIFEST: הנתיב של קובץ המניפסטVerticalPodAutoscaler.
KUBECONFIG: הנתיב של קובץ ה-kubeconfig של האשכול.
הסבר על מצבי התאמה אנכית של קבוצות Pod לעומס
התאמה אנכית של קבוצות Pod לעומס פועלת במצבים שונים שקובעים איך היא מיישמת המלצות לגבי משאבים.
מצב המלצה
במצב המלצה, התכונה 'התאמה אנכית של קבוצות Pod לעומס' מתקינה את רכיב ההמלצה. הרכיב הזה מנתח את השימוש במשאבים ומפרסם ערכים מומלצים לבקשות ולמגבלות של מעבד (CPU) וזיכרון בקטע הסטטוס של VerticalPodAutoscaler המשאבים המותאמים אישית שאתם יוצרים.
כדי לראות המלצות לגבי בקשות משאבים ומגבלות, משתמשים בפקודה הבאה:
kubectl describe vpa VPA_NAME \
--kubeconfig KUBECONFIG \
-n CLUSTER_NAMESPACE
Replace the following:
* `VPA_NAME`: the name of the `VerticalPodAutoscaler`
that's targeting the workloads for which you are considering resource
adjustments.
* `KUBECONFIG`: the path of the cluster kubeconfig
file.
* `CLUSTER_NAMESPACE`: the name of the cluster that's
running vertical Pod autoscaling.
התשובה צריכה לכלול את הקטע Status שדומה לדוגמה הבאה:
Status:
Conditions:
Last Transition Time: 2025-08-04T23:53:32Z
Status: True
Type: RecommendationProvided
Recommendation:
Container Recommendations:
Container Name: hamster
Lower Bound:
Cpu: 100m
Memory: 262144k
Target:
Cpu: 587m
Memory: 262144k
Uncapped Target:
Cpu: 587m
Memory: 262144k
Upper Bound:
Cpu: 1
Memory: 500Mi
במצב הזה, הפודים לא מתעדכנים באופן אוטומטי. אפשר להשתמש בהמלצות האלה כדי לעדכן באופן ידני את תצורות ה-Pod. זו התנהגות ברירת המחדל אם המדיניות enableUpdater לא מוגדרת או שהערך שלה הוא false.
מצב עדכון אוטומטי
כשמגדירים את enableUpdater
enableUpdater לערך true, בקרי מחזור החיים של שרתים פיזיים (bare metal) פורסים את רכיבי שירות העדכונים של התאמה אנכית של קבוצות Pod לעומס ואת בקר הגישה, בנוסף לשירות המלצות. שירות העדכונים עוקב אחרי ה-Pods שבהם בקשות המשאבים הנוכחיות חורגות באופן משמעותי מההמלצות.
מדיניות העדכון במשאב VerticalPodAutoscaler מציינת איך כלי העדכון מיישם את ההמלצות. כברירת מחדל, מצב העדכון הוא Auto, שקובע שהכלי לעדכון יקצה הגדרות משאבים מעודכנות בזמן יצירת ה-Pod. בדוגמה הבאה של VerticalPodAutoscaler אפשר לראות איך מגדירים את מצב העדכון ל-Initial:
apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
name: hamster-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: hamster
resourcePolicy:
updatePolicy:
updateMode: "Initial"
...
כלי העדכון תומך בחמישה מצבים:
Auto: תהליך העדכון מוציא את ה-Pod. בקרת הכניסה מיירטת את בקשת היצירה של ה-Pod החדש ומשנה אותה כך שישמשו בה ערכי ה-CPU והזיכרון המומלצים שסופקו על ידי הכלי להמלצות. עדכון משאבים מחייב יצירה מחדש של ה-Pod, מה שעלול לגרום להפרעות. כדי לנהל את תהליך ההוצאה, אפשר להשתמש בתקציבים של הפרעות ב-Pod, שהכלי לעדכון מכבד. המצב הזה שווה ערך ל-Recreate.
Recreate: כלי העדכון מוציא את ה-Pods ומקצה בקשות ומגבלות מומלצות של משאבים כשה-Pod נוצר מחדש.
InPlaceOrRecreate(אלפא): שירות העדכונים מנסה לבצע עדכונים במקום, אבל יכול להיות שהוא יחזור ליצור מחדש את ה-Pod אם אי אפשר לבצע עדכונים במקום. מידע נוסף זמין במאמר בנושא שינוי גודל של Pod במקום.
Initial: כלי העדכון מקצה בקשות למשאבים רק בזמן יצירת ה-Pod, ולא משנה אותן בשלב מאוחר יותר.Off: שירות העדכונים לא משנה אוטומטית את דרישות המשאבים של ה-Pods. ההמלצות מחושבות ואפשר לבדוק אותן באובייקטVerticalPodAutoscaler.
למידע נוסף על המשאב המותאם אישית VerticalPodAutoscaler, אפשר להשתמש בפקודה kubectl כדי לאחזר את הגדרת המשאב המותאם אישית verticalpodautoscalercheckpoints.autoscaling.k8s.io שמותקנת באשכול בגרסה 1.33.0 ואילך.
בדוגמה הבאה אפשר לראות איך המלצות לשימוש במשאבים יכולות להופיע בקטע Status של מאגר התגים hamster. בדוגמה מוצג גם אירוע של הוצאת Pod, שמתרחש כשהכלי לעדכון מוציא Pod לפני שהוא מקצה אוטומטית את הגדרת המשאבים המומלצת ל-Pod שנוצר מחדש:
Spec:
Resource Policy:
Container Policies:
Container Name: *
Controlled Resources:
cpu
memory
Max Allowed:
Cpu: 1
Memory: 500Mi
Min Allowed:
Cpu: 100m
Memory: 50Mi
Target Ref:
API Version: apps/v1
Kind: Deployment
Name: hamster
Update Policy:
Update Mode: Auto
Status:
Conditions:
Last Transition Time: 2025-08-04T23:53:32Z
Status: True
Type: RecommendationProvided
Recommendation:
Container Recommendations:
Container Name: hamster
Lower Bound:
Cpu: 100m
Memory: 262144k
Target:
Cpu: 587m
Memory: 262144k
Uncapped Target:
Cpu: 587m
Memory: 262144k
Upper Bound:
Cpu: 1
Memory: 500Mi
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EvictedPod 49s vpa-updater VPA Updater evicted Pod hamster-7cb59fb657-lkrk4 to apply resource recommendation.
מצב חיסכון בזיכרון
מצב חיסכון בזיכרון מצמצם את הזיכרון שבשימוש של שירות המלצות של התאמה אנכית של קבוצות Pod לעומס (VPA). כשמגדירים את enableMemorySaver לערך true, שירות המלצות עוקב אחרי צבירות ומחשב אותן רק עבור Pods שיש להם התאמה למשאב מותאם אישית VerticalPodAutoscaler.
החיסרון הוא שכאשר יוצרים VerticalPodAutoscaler משאב מותאם אישית חדשVerticalPodAutoscaler לעומס עבודה קיים, המערכת להמלצות צריכה זמן (עד 24 שעות) כדי לאסוף מספיק נתונים היסטוריים כדי לספק המלצות מדויקות. מצב הפעולה הזה מוגדר כברירת מחדל false ברוב סוגי האשכולות, אבל ברירת המחדל היא true באשכולות קצה.
שימוש ב-Prometheus כספק היסטוריה מתמשך
כברירת מחדל, שירות ההמלצות שומר בזיכרון את היסטוריית צריכת המשאבים של עומסי העבודה שפועלים באשכול, ובאופן תקופתי הוא שומר את המצב שלו בVerticalPodAutoscalerCheckpointמשאב מותאם אישית ב-etcd כדי לספק חוסן בפני הפעלה מחדש.
החל מגרסה 1.34 של Google Distributed Cloud, אתם יכולים להשתמש במופע של Prometheus כספק היסטוריה מתמשכת של נתוני צריכת משאבים, כלומר מדדי השימוש ב-CPU ובזיכרון. כששילוב כזה מופעל, הכלי להמלצות יכול לשלוח שאילתה לשרת Prometheus בהפעלה או בהפעלה מחדש כדי לאחזר נתוני שימוש ארוכי טווח במשאבים עבור כל ה-Pods המנוהלים. אחזור הנתונים האלה מאפשר לכלי ההמלצות לבנות באופן מיידי את המצב הפנימי שלו עם מערך נתונים עשיר, וכך לקבל המלצות מושכלות ומדויקות יותר מההתחלה.
שימוש ב-Prometheus כספק היסטוריה מתמשכת מציע את היתרונות הבאים:
אופטימיזציה של ניצול המשאבים: המערכת מייצרת המלצות מדויקות ומבוססות-מידע ברגע שהיא מתחילה לפעול, כדי שתוכלו לבצע אופטימיזציה של ניצול המשאבים באשכול.
מניעת שגיאות של חוסר זיכרון (OOM): Prometheus מבטל את הצורך לאחסן את המצב הפנימי של כלי ההמלצות ב
VerticalPodAutoscalerCheckpointמשאבים מותאמים אישית (CR), וכך הזיכרון של ETCD מנוצל בצורה יעילה יותר. כשמפעילים מחדש את רכיב ההמלצות, הנתונים ההיסטוריים בזיכרון הולכים לאיבוד. כשמשתמשים ב-Prometheus כספק היסטוריה, מערכת ההמלצות מאחזרת מדדים היסטוריים מ-Prometheus בהפעלה מחדש, ולכן לא צריך להשתמש ב-VerticalPodAutoscalerCheckpointCR ונחסך זיכרון ב-ETCD.
אפשר להפעיל ולהשבית את השימוש ב-Prometheus כספק היסטוריה מתמשכת בכל שלב.
דרישות מוקדמות לשימוש ב-Prometheus עם התאמה אנכית של קבוצות Pod לעומס
כדי להשתמש במופע Prometheus משלכם כספק היסטוריה של שינוי גודל אנכי של Pod, אתם צריכים להגדיר אותו כך שיגרד את המדדים הנדרשים. לשם כך, צריך לבצע את השלבים הבאים:
במידת הצורך, פורסים את Prometheus Operator באשכול שבו רוצים להשתמש בו כספק היסטוריה מתמשכת עבור שינוי גודל אנכי אוטומטי של Pod. מידע נוסף זמין במאמר איך פורסים ומגדירים את Prometheus Operator ב-Kubernetes.
הגדרת הרשאות לגירוד מדדים.
כדי לאפשר ל-Prometheus לגרד מדדים מ-cAdvisor באמצעות קובץ הגדרה, צריך להעניק הרשאות נוספות לחשבון השירות שבו משתמש שרת Prometheus. יוצרים או מעדכנים
ClusterRoleשמכיל את הכללים האלה, ומוודאים שהוא משויך לחשבון השירות הנכון של Prometheus באמצעותClusterRoleBinding:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: prometheus-role labels: app: prometheus-server rules: - apiGroups: [""] resources: - nodes verbs: - get - list - watch - apiGroups: [""] resources: - nodes/proxy - nodes/metrics verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: prometheus-binding labels: app: prometheus-server subjects: - kind: ServiceAccount name: prometheus-server # Service account being used by prometheus namespace: prometheus # Service account's namespace roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus-role # Name of the ClusterRole created aboveמעדכנים את קובץ ההגדרות של Prometheus כדי לגרד את המדדים הבאים מ-cAdvisor:
container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes
השורות הבאות מגדירות את פרטי הגירוד של מדדי cAdvisor:
- job_name: 'kubernetes-cadvisor' scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor metric_relabel_configs: # Keep only the metrics VPA uses to save disk space - source_labels: [__name__] regex: (container_cpu_usage_seconds_total|container_memory_working_set_bytes) action: keepמעדכנים את קובץ ההגדרות של Prometheus כדי לגרד את המדד הבא משירות
kube-state-metrics:kube_pod_labels
פורסים שירות
kube-state-metricsבאשכול.אפשר להשתמש בפקודות הבאות של Helm כדי להתקין את השירות החדש:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo updateיוצרים קובץ
ksm-values.yamlעם התוכן הבא:fullnameOverride: vpa-kube-state-metrics metricAllowlist: - kube_pod_labels metricLabelsAllowlist: - "pods=[*]"מתקינים תרשים Helm על סמך קובץ הערכים מהשלב הקודם:
helm install vpa-ksm prometheus-community/kube-state-metrics \ -f ksm-values.yaml --namespace kube-systemמוסיפים את השורות הבאות לקובץ ההגדרות של Prometheus כדי לגרד את המדד
kube_pod_labelsמהשירותkube-state-metricsהמותקן:- job_name: 'kube-state-metrics' static_configs: - targets: ['vpa-kube-state-metrics.kube-system.svc.cluster.local:8080'] metric_relabel_configs: - source_labels: [ __name__ ] regex: 'kube_pod_labels' action: keep
הפעלה של Prometheus ושימוש בו
התאמה אנכית של קבוצות Pod לעומס תומכת באימות בסיסי ובאימות שמבוסס על טוקן למוכ"ז לחיבור ל-Prometheus. כשמשתמשים באימות, צריך ליצור Secret שמכיל את פרטי הכניסה הנדרשים במרחב השמות של האשכול. הבקר מעביר את הסוד הזה לאשכול היעד ומטמיע אותו כנפח או כמשתנה סביבה ב-Pod של הממליץ. אפשר גם להשתמש ב-Prometheus בלי אימות.
כדי להפעיל ולהשתמש במופע Prometheus משלכם עם התאמה אנכית של קבוצות Pod לעומס, צריך להגדיר את הקטע verticalPodAutoscaling במפרט של האשכול עם פרטים לחיבור למופע Prometheus.
דוגמה להגדרה במפרט האשכול לשימוש עם טוקן מסוג bearer:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
preview.baremetal.cluster.gke.io/vertical-pod-autoscaler: enable
spec:
# ... other existing cluster configurations ...
verticalPodAutoscaling:
# ... other vertical Pod autoscaling configurations ...
# Add this new section to configure the vpa to use prometheus using bearer token authentication as history provider
prometheus:
url: "http://prometheus.prometheus.monitoring.svc.cluster.local:9090"
auth:
bearerTokenAuth:
name: prom-bearer-creds
key: bearertoken
כדי להפעיל את Prometheus לשימוש עם התאמה אנכית של קבוצות Pod לעומס:
מוודאים שמופע Prometheus מוגדר לגירוד המדדים הנדרשים, כפי שמתואר במאמר דרישות מוקדמות לשימוש ב-Prometheus עם שינוי אוטומטי של גודל ה-Pod.
מעדכנים את המשאב המותאם אישית Cluster
specכך שהשדהverticalPodAutoscaling.prometheusיציין את הגדרות החיבור לשרת Prometheus.מוסיפים את
urlלקטעprometheusומגדירים אותו לשם הדומיין המלא (FQDN) לחיבור ל-Prometheus מתוך האשכול:spec: # ... other existing cluster configurations ... verticalPodAutoscaling: # ... other vpa configurations ... # Add this new section to configure the vpa to use prometheus as history provider prometheus: # Required: The URL of the Prometheus server url: "http://prometheus.prometheus.svc.cluster.local:9090"מציינים את פרטי החיבור:
התאמה אנכית של קבוצות Pod לעומס תומכת בשלוש שיטות החיבור הבאות:
- ללא אימות
- אימות בסיסי (שם משתמש, סיסמה)
אימות באמצעות טוקן למוכ"ז
ללא אימות
אם מופע Prometheus שלכם לא דורש אימות, סיימתם. המקטע
prometheusחייב לכלול רק שדהurl.אימות בסיסי
כדי לציין אימות בסיסי ל-Prometheus:
יוצרים Secret שמכיל שם משתמש וסיסמה בקטע
stringDataובהערהbaremetal.cluster.gke.io/mark-source: "true".בדוגמה הבאה מוצג סוד שתומך באימות בסיסי:
apiVersion: v1 kind: Secret metadata: name: prom-basic-creds namespace: <cluster-namespace> annotations: baremetal.cluster.gke.io/mark-source: "true" type: Opaque stringData: username: admin password: pwdההערה נדרשת כדי לוודא שהסוד של המקור והסוד באשכול היעד תמיד מסונכרנים. הסוד מתעדכן כשמעדכנים את סוד המקור.
מעדכנים את הקטע
prometheus.auth.basicAuthבמפרט האשכול כדי להפנות לשם המשתמש ולסיסמה מהשדהdataבסוד.בדוגמה הבאה מוצג קטע
basicAuthשמפנה לשם המשתמש ולסיסמה בסוד מהשלב הקודם:# ... other vpa configurations ... prometheus: url: "http://prometheus.prometheus.svc.cluster.local:9090" auth: basicAuth: usernameRef: name: prom-basic-creds key: username passwordRef: name: prom-basic-creds key: passwordשם המשתמש והסיסמה צריכים להיות באותו סוד. המפתחות צריכים להיות מפתחות תקינים מהשדה
dataשל הסוד.
המופע של Prometheus אמור להתחיל לפעול כספק היסטוריה עבור הכלי האוטומטי לשינוי גודל של Pod אנכי, כשהמשאב המותאם אישית של האשכול מתעדכן.
אימות באמצעות טוקן למוכ"ז
כדי לציין אימות באמצעות אסימון גישה (bearer token) ב-Prometheus:
יוצרים Secret שמכיל טוקן מסוג Bearer בקטע
stringDataובאנוטציהbaremetal.cluster.gke.io/mark-source: "true".בדוגמה הבאה מוצג סוד שתומך באימות באמצעות אסימון bearer:
apiVersion: v1 kind: Secret metadata: name: prom-bearer-creds namespace: <cluster-namespace> annotations: baremetal.cluster.gke.io/mark-source: "true" type: Opaque stringData: bearertoken: "SAMPLE_TOKEN"ההערה נדרשת כדי לוודא שהסוד של המקור והסוד באשכול היעד תמיד מסונכרנים. הסוד מתעדכן כשמעדכנים את סוד המקור.
מעדכנים את הקטע
prometheus.auth.bearerTokenAuthבמפרט האשכול כדי להפנות אל טוקן למוכ"ז מהשדהdataב-סוד.בדוגמה הבאה מוצג קטע
bearerTokenAuthשמפנה לאסימון ה-Bearer בסוד מהשלב הקודם:# ... other vertical Pod autoscaling configurations ... prometheus: url: "http://prometheus.prometheus.svc.cluster.local:9090" auth: bearerTokenAuth: name: prom-bearer-creds key: bearertokenהמפתח חייב להיות מפתח תקין מהשדה
dataשל הסוד.
המופע של Prometheus אמור להתחיל לפעול כספק היסטוריה של שינוי גודל אוטומטי של Pod אנכי כשמעדכנים את המשאב המותאם אישית של Cluster.
השבתת השימוש ב-Prometheus
כדי להשבית את השימוש ב-Prometheus עם התאמה אנכית של קבוצות Pod לעומס, מסירים את הקטע prometheus מהקטע verticalPodAutoscaling במשאב המותאם אישית Cluster.
השבתת התאמה אנכית של קבוצות Pod לעומס
כדי להשבית את התאמה אנכית של קבוצות Pod לעומס, מסירים את המשאבים המותאמים אישית ואת ההגדרה שלו מהאשכול:
מוחקים את כל המשאבים המותאמים אישית
VerticalPodAutoscalerשיצרתם.משנים את המשאב המותאם אישית Cluster ומסירים את הקטע
verticalPodAutoscalingכולו מ-spec.אפשר לערוך ישירות את המשאב המותאם אישית Cluster או לשנות את קובץ התצורה של האשכול ולהשתמש ב-
bmctl update.מסירים את ההערה
preview.baremetal.cluster.gke.io/vertical-pod-autoscalerמהמשאב המותאם אישית Cluster.
מגבלות
כשמשתמשים בהתאמה אנכית של קבוצות Pod לעומס, חשוב להביא בחשבון את המגבלות הבאות:
- התאמה אנכית של קבוצות Pod לעומס לא מוכנה לשימוש עם עומסי עבודה מבוססי JVM, בגלל נראות מוגבלת של השימוש בפועל בזיכרון של עומס העבודה.
- כדי שהכלי לעדכון יחליף את ה-Pods בערכי משאבים מתוקנים, צריך לפחות שתי רפליקות של Pod לפריסות.
- הכלי לעדכון לא מעדכן במהירות את ה-Pods שנמצאים בלולאת קריסה בגלל שגיאות של חוסר זיכרון (OOM).
- מדיניות העדכונים של
InPlaceOrRecreateל-Pods היא תכונה בשלב אלפא במסגרת התאמה אנכית של קבוצות Pod לעומס. הוא מנסה לבצע עדכונים במקום, אבל יכול להיות שהוא יחזור ליצור מחדש את ה-Pod אם עדכונים במקום לא אפשריים.