התאמה אנכית של קבוצות Pod לעומס מאפשרת להגדיר באופן אוטומטי הקצאות משאבים וגבולות של משאבי מעבד וזיכרון לקונטיינרים בתוך Kubernetes Pods. התכונה Vertical Pod Autoscaling מנתחת את השימוש ההיסטורי והנוכחי במשאבים כדי לספק המלצות. היא יכולה להציג את ההמלצות או ליישם אותן באופן אוטומטי על ידי עדכון ה-Pods. התכונה הזו משפרת את היציבות ואת היעילות בעלויות על ידי הקצאת משאבים בגודל המתאים.
לפני שמתחילים
לפני שמגדירים את התכונה התאמה אנכית של קבוצות Pod לעומס, צריך לוודא שמתקיימים התנאים המוקדמים הבאים:
- יש לכם אשכול bare metal שפועל.
- יש לך גישת
kubectlלאשכול. - שרת המדדים זמין באשכול. אשכולות Bare Metal כוללים את Metrics Server כברירת מחדל.
הפעלת התאמה אנכית של קבוצות Pod לעומס
כדי להפעיל התאמה אנכית של קבוצות Pod לעומס באשכול bare metal, צריך להגדיר את מפרט האשכול:
משנים את
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 משאב בהתאמה אישית
אחרי שמפעילים את התכונה Vertical Pod Autoscaling באשכול, מגדירים 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
במצב הזה, ה-Pods לא מתעדכנים באופן אוטומטי. אפשר להשתמש בהמלצות האלה כדי לעדכן באופן ידני את תצורות ה-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 לעומס. כשמגדירים את enableMemorySaver לערך true, שירות ההמלצות עוקב אחרי צבירות ומחשב אותן רק עבור Pods שיש להם משאב מותאם אישית 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 שמכיל את פרטי הכניסה הנדרשים במרחב השמות של האשכול. הבקר מעביר את ה-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:
יוצרים סוד שמכיל שם משתמש וסיסמה בקטע
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 אמור להתחיל לפעול כספק היסטוריה עבור הכלי האוטומטי לשינוי גודל של Pods אנכיים כשמעדכנים את המשאב המותאם אישית של האשכול.
אימות באמצעות טוקן למוכ"ז
כדי לציין אימות באמצעות אסימון גישה (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 של משאב אשכול בהתאמה אישית.
השבתת התאמה אנכית של קבוצות Pod לעומס
כדי להשבית את התאמה אנכית של קבוצות Pod לעומס, מסירים את המשאבים המותאמים אישית ואת ההגדרה שלו מהאשכול:
מוחקים את כל המשאבים המותאמים אישית
VerticalPodAutoscalerשיצרתם.משנים את המשאב המותאם אישית Cluster ומסירים את הקטע
verticalPodAutoscalingכולו מ-spec.אפשר לערוך ישירות את המשאב המותאם אישית Cluster או לשנות את קובץ התצורה של האשכול ולהשתמש ב-
bmctl update.מסירים את ההערה
preview.baremetal.cluster.gke.io/vertical-pod-autoscalerמהמשאב המותאם אישית Cluster.
מגבלות
כשמשתמשים בהתאמה אנכית של קבוצות Pod לעומס, חשוב להביא בחשבון את המגבלות הבאות:
- התאמה אנכית של קבוצות Pod לעומס לא מוכנה לשימוש עם עומסי עבודה מבוססי JVM, כי יש נראות מוגבלת של השימוש בפועל בזיכרון של עומס העבודה.
- כדי שהכלי לעדכון יוכל להחליף את ה-Pods בערכי משאבים מתוקנים, צריך לפחות שתי רפליקות של Pods לפריסות.
- הכלי לעדכון לא מעדכן במהירות את ה-Pods שמתרחשים בהם לולאות קריסה בגלל שגיאות של חוסר זיכרון (OOM).
- מדיניות העדכון
InPlaceOrRecreateעבור Pods היא תכונה בשלב אלפא בתוך התאמה אנכית של קבוצות Pod לעומס. הוא מנסה לעדכן את ה-Pod במקום, אבל יכול להיות שהוא ייצור מחדש את ה-Pod אם אי אפשר לעדכן אותו במקום.