W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
在 Kubernetes 中,HorizontalPodAutoscaler 自動更新工作負(fù)載資源 (例如 Deployment 或者 StatefulSet), 目的是自動擴(kuò)縮工作負(fù)載以滿足需求。
水平擴(kuò)縮意味著對增加的負(fù)載的響應(yīng)是部署更多的 Pods。 這與 “垂直(Vertical)” 擴(kuò)縮不同,對于 Kubernetes, 垂直擴(kuò)縮意味著將更多資源(例如:內(nèi)存或 CPU)分配給已經(jīng)為工作負(fù)載運(yùn)行的 Pod。
如果負(fù)載減少,并且 Pod 的數(shù)量高于配置的最小值, HorizontalPodAutoscaler 會指示工作負(fù)載資源( Deployment、StatefulSet 或其他類似資源)縮減。
水平 Pod 自動擴(kuò)縮不適用于無法擴(kuò)縮的對象(例如:DaemonSet。)
HorizontalPodAutoscaler 被實(shí)現(xiàn)為 Kubernetes API 資源和控制器。
資源決定了控制器的行為。在 Kubernetes 控制平面內(nèi)運(yùn)行的水平 Pod 自動擴(kuò)縮控制器會定期調(diào)整其目標(biāo)(例如:Deployment)的所需規(guī)模,以匹配觀察到的指標(biāo), 例如,平均 CPU 利用率、平均內(nèi)存利用率或你指定的任何其他自定義指標(biāo)。
使用水平 Pod 自動擴(kuò)縮演練示例。
HorizontalPodAutoscaler 控制 Deployment 及其 ReplicaSet 的規(guī)模
Kubernetes 將水平 Pod 自動擴(kuò)縮實(shí)現(xiàn)為一個間歇運(yùn)行的控制回路(它不是一個連續(xù)的過程)。間隔由 ?kube-controller-manager
? 的 ?--horizontal-pod-autoscaler-sync-period
? 參數(shù)設(shè)置(默認(rèn)間隔為 15 秒)。
在每個時間段內(nèi),控制器管理器都會根據(jù)每個 HorizontalPodAutoscaler 定義中指定的指標(biāo)查詢資源利用率。 控制器管理器找到由 ?scaleTargetRef
?定義的目標(biāo)資源,然后根據(jù)目標(biāo)資源的 ?.spec.selector
? 標(biāo)簽選擇 Pod, 并從資源指標(biāo) API(針對每個 Pod 的資源指標(biāo))或自定義指標(biāo)獲取指標(biāo) API(適用于所有其他指標(biāo))。
需要注意的是,如果 Pod 某些容器不支持資源采集,那么控制器將不會使用該 Pod 的 CPU 使用率。 下面的算法細(xì)節(jié)章節(jié)將會介紹詳細(xì)的算法。
autoscaling/v2beta2
? 版本 API 中,這個指標(biāo)也可以根據(jù) Pod 數(shù)量平分后再計(jì)算。HorizontalPodAutoscaler 的常見用途是將其配置為從聚合 API (?metrics.k8s.io
?、?custom.metrics.k8s.io
? 或 ?external.metrics.k8s.io
?)獲取指標(biāo)。 ?metrics.k8s.io
? API 通常由名為 Metrics Server 的插件提供,需要單獨(dú)啟動。
HorizontalPodAutoscaler 控制器訪問支持?jǐn)U縮的相應(yīng)工作負(fù)載資源(例如:Deployments 和 StatefulSet)。 這些資源每個都有一個名為 ?scale
?的子資源,該接口允許你動態(tài)設(shè)置副本的數(shù)量并檢查它們的每個當(dāng)前狀態(tài)。
從最基本的角度來看,Pod 水平自動擴(kuò)縮控制器根據(jù)當(dāng)前指標(biāo)和期望指標(biāo)來計(jì)算擴(kuò)縮比例。
期望副本數(shù) = ceil[當(dāng)前副本數(shù) * (當(dāng)前指標(biāo) / 期望指標(biāo))]
例如,如果當(dāng)前指標(biāo)值為 200m,而期望值為 100m,則副本數(shù)將加倍, 因?yàn)?nbsp;200.0 / 100.0 == 2.0 如果當(dāng)前值為 50m,則副本數(shù)將減半, 因?yàn)?nbsp;50.0 / 100.0 == 0.5。如果比率足夠接近 1.0(在全局可配置的容差范圍內(nèi),默認(rèn)為 0.1), 則控制平面會跳過擴(kuò)縮操作。
如果 HorizontalPodAutoscaler 指定的是 ?targetAverageValue
?或 ?targetAverageUtilization
?, 那么將會把指定 Pod 度量值的平均值做為 ?currentMetricValue
?。
在檢查容差并決定最終值之前,控制平面還會考慮是否缺少任何指標(biāo), 以及有多少 Pod 已就緒。
所有設(shè)置了刪除時間戳的 Pod(帶有刪除時間戳的對象正在關(guān)閉/移除的過程中)都會被忽略, 所有失敗的 Pod 都會被丟棄。
如果某個 Pod 缺失度量值,它將會被擱置,只在最終確定擴(kuò)縮數(shù)量時再考慮。
當(dāng)使用 CPU 指標(biāo)來擴(kuò)縮時,任何還未就緒(還在初始化,或者可能是不健康的)狀態(tài)的 Pod 或 最近的指標(biāo)度量值采集于就緒狀態(tài)前的 Pod,該 Pod 也會被擱置。
由于技術(shù)限制,HorizontalPodAutoscaler 控制器在確定是否保留某些 CPU 指標(biāo)時無法準(zhǔn)確確定 Pod 首次就緒的時間。 相反,如果 Pod 未準(zhǔn)備好并在其啟動后的一個可配置的短時間窗口內(nèi)轉(zhuǎn)換為未準(zhǔn)備好,它會認(rèn)為 Pod “尚未準(zhǔn)備好”。 該值使用 ?--horizontal-pod-autoscaler-initial-readiness-delay
? 標(biāo)志配置,默認(rèn)值為 30 秒。 一旦 Pod 準(zhǔn)備就緒,如果它發(fā)生在自啟動后較長的、可配置的時間內(nèi),它就會認(rèn)為任何向準(zhǔn)備就緒的轉(zhuǎn)換都是第一個。 該值由 ?-horizontal-pod-autoscaler-cpu-initialization-period
? 標(biāo)志配置,默認(rèn)為 5 分鐘。
在排除掉被擱置的 Pod 后,擴(kuò)縮比例就會根據(jù) ?currentMetricValue/desiredMetricValue
? 計(jì)算出來。
如果缺失某些度量值,控制平面會更保守地重新計(jì)算平均值,在需要縮小時假設(shè)這些 Pod 消耗了目標(biāo)值的 100%, 在需要放大時假設(shè)這些 Pod 消耗了 0% 目標(biāo)值。這可以在一定程度上抑制擴(kuò)縮的幅度。
此外,如果存在任何尚未就緒的 Pod,工作負(fù)載會在不考慮遺漏指標(biāo)或尚未就緒的 Pod 的情況下進(jìn)行擴(kuò)縮, 控制器保守地假設(shè)尚未就緒的 Pod 消耗了期望指標(biāo)的 0%,從而進(jìn)一步降低了擴(kuò)縮的幅度。
考慮到尚未準(zhǔn)備好的 Pod 和缺失的指標(biāo)后,控制器會重新計(jì)算使用率。 如果新的比率與擴(kuò)縮方向相反,或者在容差范圍內(nèi),則控制器不會執(zhí)行任何擴(kuò)縮操作。 在其他情況下,新比率用于決定對 Pod 數(shù)量的任何更改。
注意,平均利用率的 原始 值是通過 HorizontalPodAutoscaler 狀態(tài)體現(xiàn)的, 而不考慮尚未準(zhǔn)備好的 Pod 或缺少的指標(biāo),即使使用新的使用率也是如此。
如果創(chuàng)建 HorizontalPodAutoscaler 時指定了多個指標(biāo), 那么會按照每個指標(biāo)分別計(jì)算擴(kuò)縮副本數(shù),取最大值進(jìn)行擴(kuò)縮。 如果任何一個指標(biāo)無法順利地計(jì)算出擴(kuò)縮副本數(shù)(比如,通過 API 獲取指標(biāo)時出錯), 并且可獲取的指標(biāo)建議縮容,那么本次擴(kuò)縮會被跳過。 這表示,如果一個或多個指標(biāo)給出的 ?desiredReplicas
?值大于當(dāng)前值,HPA 仍然能實(shí)現(xiàn)擴(kuò)容。
最后,在 HPA 控制器執(zhí)行擴(kuò)縮操作之前,會記錄擴(kuò)縮建議信息。 控制器會在操作時間窗口中考慮所有的建議信息,并從中選擇得分最高的建議。 這個值可通過 ?kube-controller-manager
? 服務(wù)的啟動參數(shù) ?--horizontal-pod-autoscaler-downscale-stabilization
? 進(jìn)行配置, 默認(rèn)值為 5 分鐘。 這個配置可以讓系統(tǒng)更為平滑地進(jìn)行縮容操作,從而消除短時間內(nèi)指標(biāo)值快速波動產(chǎn)生的影響。
HorizontalPodAutoscaler 是 Kubernetes ?autoscaling
?API 組中的 API 資源。 當(dāng)前的穩(wěn)定版本可以在 ?autoscaling/v2
? API 版本中找到,其中包括對基于內(nèi)存和自定義指標(biāo)執(zhí)行擴(kuò)縮的支持。 在使用 ?autoscaling/v1
? 時,?autoscaling/v2
? 中引入的新字段作為注釋保留。
創(chuàng)建 HorizontalPodAutoscaler 對象時,需要確保所給的名稱是一個合法的 DNS 子域名。 有關(guān) API 對象的更多信息,請查閱 HorizontalPodAutoscaler 對象設(shè)計(jì)文檔。
在使用 HorizontalPodAutoscaler 管理一組副本的規(guī)模時,由于評估的指標(biāo)的動態(tài)特性, 副本的數(shù)量可能會經(jīng)常波動。這有時被稱為 抖動(thrashing) 或 波動(flapping)。它類似于控制論中的 滯后(hysteresis) 概念。
Kubernetes 允許你在 Deployment 上執(zhí)行滾動更新。在這種情況下,Deployment 為你管理下層的 ReplicaSet。 當(dāng)你為一個 Deployment 配置自動擴(kuò)縮時,你要為每個 Deployment 綁定一個 HorizontalPodAutoscaler。 HorizontalPodAutoscaler 管理 Deployment 的 ?replicas
?字段。 Deployment Controller 負(fù)責(zé)設(shè)置下層 ReplicaSet 的 ?replicas
?字段, 以便確保在上線及后續(xù)過程副本個數(shù)合適。
如果你對一個副本個數(shù)被自動擴(kuò)縮的 StatefulSet 執(zhí)行滾動更新, 該 StatefulSet 會直接管理它的 Pod 集合 (不存在類似 ReplicaSet 這樣的中間資源)。
HPA 的任何目標(biāo)資源都可以基于其中的 Pods 的資源用量來實(shí)現(xiàn)擴(kuò)縮。 在定義 Pod 規(guī)約時,類似 ?cpu
?和 ?memory
?這類資源請求必須被設(shè)定。 這些設(shè)定值被用來確定資源利用量并被 HPA 控制器用來對目標(biāo)資源完成擴(kuò)縮操作。 要使用基于資源利用率的擴(kuò)縮,可以像下面這樣指定一個指標(biāo)源:
type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
基于這一指標(biāo)設(shè)定,HPA 控制器會維持?jǐn)U縮目標(biāo)中的 Pods 的平均資源利用率在 60%。 利用率是 Pod 的當(dāng)前資源用量與其請求值之間的比值。
說明:
由于所有的容器的資源用量都會被累加起來,Pod 的總體資源用量值可能不會精確體現(xiàn) 各個容器的資源用量。這一現(xiàn)象也會導(dǎo)致一些問題,例如某個容器運(yùn)行時的資源用量非常 高,但因?yàn)?nbsp;Pod 層面的資源用量總值讓人在可接受的約束范圍內(nèi),HPA 不會執(zhí)行擴(kuò)大 目標(biāo)對象規(guī)模的操作。
特性狀態(tài): Kubernetes v1.20 [alpha]
HorizontalPodAutoscaler API 也支持容器指標(biāo)源,這時 HPA 可以跟蹤記錄一組 Pods 中各個容器的 資源用量,進(jìn)而觸發(fā)擴(kuò)縮目標(biāo)對象的操作。 容器資源指標(biāo)的支持使得你可以為特定 Pod 中最重要的容器配置規(guī)模擴(kuò)縮閾值。 例如,如果你有一個 Web 應(yīng)用和一個執(zhí)行日志操作的邊車容器,你可以基于 Web 應(yīng)用的 資源用量來執(zhí)行擴(kuò)縮,忽略邊車容器的存在及其資源用量。
如果你更改擴(kuò)縮目標(biāo)對象,令其使用新的、包含一組不同的容器的 Pod 規(guī)約,你就需要 修改 HPA 的規(guī)約才能基于新添加的容器來執(zhí)行規(guī)模擴(kuò)縮操作。 如果指標(biāo)源中指定的容器不存在或者僅存在于部分 Pods 中,那么這些 Pods 會被忽略, HPA 會重新計(jì)算資源用量值。要使用容器資源用量來完成自動擴(kuò)縮,可以像下面這樣定義指標(biāo)源:
type: ContainerResource
containerResource:
name: cpu
container: application
target:
type: Utilization
averageUtilization: 60
在上面的例子中,HPA 控制器會對目標(biāo)對象執(zhí)行擴(kuò)縮操作以確保所有 Pods 中 ?application
?容器的平均 CPU 用量為 60%。
說明:
如果你要更改 HorizontalPodAutoscaler 所跟蹤記錄的容器的名稱,你可以按一定順序 來執(zhí)行這一更改,確保在應(yīng)用更改的過程中用來判定擴(kuò)縮行為的容器可用。 在更新定義容器的資源(如 Deployment)之前,你需要更新相關(guān)的 HPA,使之能夠同時 跟蹤記錄新的和老的容器名稱。這樣,HPA 就能夠在整個更新過程中繼續(xù)計(jì)算并提供擴(kuò)縮操作建議。
一旦你已經(jīng)將容器名稱變更這一操作應(yīng)用到整個負(fù)載對象至上,就可以從 HPA 的規(guī)約中去掉老的容器名稱,完成清理操作。
特性狀態(tài): Kubernetes v1.23 [stable]
(之前的 ?autoscaling/v2beta2
? API 版本將此功能作為 beta 功能提供)
如果你使用 ?autoscaling/v2
? API 版本,則可以將 HorizontalPodAutoscaler 配置為基于自定義指標(biāo)(未內(nèi)置于 Kubernetes 或任何 Kubernetes 組件)進(jìn)行擴(kuò)縮。 HorizontalPodAutoscaler 控制器能夠從 Kubernetes API 查詢這些自定義指標(biāo)。
特性狀態(tài): Kubernetes v1.23 [stable]
(之前的 ?autoscaling/v2beta2
? API 版本將此功能作為 beta 功能提供)
如果你使用 ?autoscaling/v2
? API 版本,你可以為 HorizontalPodAutoscaler 指定多個指標(biāo)以進(jìn)行擴(kuò)縮。 HorizontalPodAutoscaler 控制器評估每個指標(biāo),并根據(jù)該指標(biāo)提出一個新的比例。 HorizontalPodAutoscaler 采用為每個指標(biāo)推薦的最大比例, 并將工作負(fù)載設(shè)置為該大?。ㄇ疤崾沁@不大于你配置的總體最大值)。
默認(rèn)情況下,HorizontalPodAutoscaler 控制器會從一系列的 API 中檢索度量值。 集群管理員需要確保下述條件,以保證 HPA 控制器能夠訪問這些 API:
metrics.k8s.io
? API,一般由 metrics-server 提供。 它可以作為集群插件啟動。custom.metrics.k8s.io
? API。 它由其他度量指標(biāo)方案廠商的“適配器(Adapter)” API 服務(wù)器提供。 檢查你的指標(biāo)管道以查看是否有可用的 Kubernetes 指標(biāo)適配器。external.metrics.k8s.io
? API??赡苡缮厦娴淖远x指標(biāo)適配器提供。關(guān)于指標(biāo)來源以及其區(qū)別的更多信息,請參閱相關(guān)的設(shè)計(jì)文檔, HPA V2, custom.metrics.k8s.io 和 external.metrics.k8s.io。
特性狀態(tài): Kubernetes v1.23 [stable]
(之前的 ?autoscaling/v2beta2
? API 版本將此功能作為 beta 功能提供)
如果你使用 ?v2
? HorizontalPodAutoscaler API,你可以使用 ?behavior
?字段來配置單獨(dú)的放大和縮小行為。你可以通過在行為字段下設(shè)置 ?scaleUp
?或 ?scaleDown
?來指定這些行為。
你可以指定一個 “穩(wěn)定窗口” ,以防止擴(kuò)縮目標(biāo)的副本計(jì)數(shù)發(fā)生波動。 擴(kuò)縮策略還允許你在擴(kuò)縮時控制副本的變化率。
可以在規(guī)約的 ?behavior
?部分中指定一個或多個擴(kuò)縮策略。當(dāng)指定多個策略時, 允許最大更改量的策略是默認(rèn)選擇的策略。以下示例顯示了縮小時的這種行為:
behavior:
scaleDown:
policies:
- type: Pods
value: 4
periodSeconds: 60
- type: Percent
value: 10
periodSeconds: 60
?periodSeconds
?表示在過去的多長時間內(nèi)要求策略值為真。 第一個策略(Pods)允許在一分鐘內(nèi)最多縮容 4 個副本。第二個策略(Percent) 允許在一分鐘內(nèi)最多縮容當(dāng)前副本個數(shù)的百分之十。
由于默認(rèn)情況下會選擇容許更大程度作出變更的策略,只有 Pod 副本數(shù)大于 40 時, 第二個策略才會被采用。如果副本數(shù)為 40 或者更少,則應(yīng)用第一個策略。 例如,如果有 80 個副本,并且目標(biāo)必須縮小到 10 個副本,那么在第一步中將減少 8 個副本。 在下一輪迭代中,當(dāng)副本的數(shù)量為 72 時,10% 的 Pod 數(shù)為 7.2,但是這個數(shù)字向上取整為 8。 在 autoscaler 控制器的每個循環(huán)中,將根據(jù)當(dāng)前副本的數(shù)量重新計(jì)算要更改的 Pod 數(shù)量。 當(dāng)副本數(shù)量低于 40 時,應(yīng)用第一個策略(Pods),一次減少 4 個副本。
可以指定擴(kuò)縮方向的 ?selectPolicy
?字段來更改策略選擇。 通過設(shè)置 ?Min
?的值,它將選擇副本數(shù)變化最小的策略。 將該值設(shè)置為 ?Disabled
?將完全禁用該方向的擴(kuò)縮。
當(dāng)用于擴(kuò)縮的指標(biāo)不斷波動時,穩(wěn)定窗口用于限制副本計(jì)數(shù)的波動。 自動擴(kuò)縮算法使用此窗口來推斷先前的期望狀態(tài)并避免對工作負(fù)載規(guī)模進(jìn)行不必要的更改。
例如,在以下示例代碼段中,為 ?scaleDown
?指定了穩(wěn)定窗口。
behavior:
scaleDown:
stabilizationWindowSeconds: 300
當(dāng)指標(biāo)顯示目標(biāo)應(yīng)該縮容時,自動擴(kuò)縮算法查看之前計(jì)算的期望狀態(tài),并使用指定時間間隔內(nèi)的最大值。 在上面的例子中,過去 5 分鐘的所有期望狀態(tài)都會被考慮。
這近似于滾動最大值,并避免了擴(kuò)縮算法頻繁刪除 Pod 而又觸發(fā)重新創(chuàng)建等效 Pod。
要使用自定義擴(kuò)縮,不必指定所有字段。 只有需要自定義的字段才需要指定。 這些自定義值與默認(rèn)值合并。 默認(rèn)值與 HPA 算法中的現(xiàn)有行為匹配。
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 100
periodSeconds: 15
scaleUp:
stabilizationWindowSeconds: 0
policies:
- type: Percent
value: 100
periodSeconds: 15
- type: Pods
value: 4
periodSeconds: 15
selectPolicy: Max
用于縮小穩(wěn)定窗口的時間為 300 秒(或是 ?--horizontal-pod-autoscaler-downscale-stabilization
? 參數(shù)設(shè)定值)。 只有一種縮容的策略,允許 100% 刪除當(dāng)前運(yùn)行的副本,這意味著擴(kuò)縮目標(biāo)可以縮小到允許的最小副本數(shù)。 對于擴(kuò)容,沒有穩(wěn)定窗口。當(dāng)指標(biāo)顯示目標(biāo)應(yīng)該擴(kuò)容時,目標(biāo)會立即擴(kuò)容。 這里有兩種策略,每 15 秒添加 4 個 Pod 或 100% 當(dāng)前運(yùn)行的副本數(shù),直到 HPA 達(dá)到穩(wěn)定狀態(tài)。
將下面的 behavior 配置添加到 HPA 中,可提供一個 1 分鐘的自定義縮容穩(wěn)定窗口:
behavior:
scaleDown:
stabilizationWindowSeconds: 60
將下面的 behavior 配置添加到 HPA 中,可限制 Pod 被 HPA 刪除速率為每分鐘 10%:
behavior:
scaleDown:
policies:
- type: Percent
value: 10
periodSeconds: 60
為了確保每分鐘刪除的 Pod 數(shù)不超過 5 個,可以添加第二個縮容策略,大小固定為 5,并將 ?selectPolicy
?設(shè)置為最小值。 將 ?selectPolicy
?設(shè)置為 ?Min
?意味著 autoscaler 會選擇影響 Pod 數(shù)量最小的策略:
behavior:
scaleDown:
policies:
- type: Percent
value: 10
periodSeconds: 60
- type: Pods
value: 5
periodSeconds: 60
selectPolicy: Min
?selectPolicy
?的值 ?Disabled
?會關(guān)閉對給定方向的縮容。 因此使用以下策略,將會阻止縮容:
behavior:
scaleDown:
selectPolicy: Disabled
與每個 API 資源一樣,HorizontalPodAutoscaler 都被 ?kubectl
?以標(biāo)準(zhǔn)方式支持。 你可以使用 ?kubectl create
? 命令創(chuàng)建一個新的自動擴(kuò)縮器。 你可以通過 ?kubectl get hpa
? 列出自動擴(kuò)縮器或通過 ?kubectl describe hpa
? 獲取詳細(xì)描述。 最后,你可以使用 ?kubectl delete hpa
? 刪除自動擴(kuò)縮器。
此外,還有一個特殊的 ?kubectl autoscale
? 命令用于創(chuàng)建 HorizontalPodAutoscaler 對象。 例如,執(zhí)行 ?kubectl autoscale rs foo --min=2 --max=5 --cpu-percent=80
? 將為 ReplicaSet foo 創(chuàng)建一個自動擴(kuò)縮器,目標(biāo) CPU 利用率設(shè)置為 ?80%
?,副本數(shù)在 2 到 5 之間。
你可以在不必更改 HPA 配置的情況下隱式地為某個目標(biāo)禁用 HPA。 如果此目標(biāo)的期望副本個數(shù)被設(shè)置為 0,而 HPA 的最小副本個數(shù)大于 0, 則 HPA 會停止調(diào)整目標(biāo)(并將其自身的 ?ScalingActive
?狀況設(shè)置為 ?false
?), 直到你通過手動調(diào)整目標(biāo)的期望副本個數(shù)或 HPA 的最小副本個數(shù)來重新激活。
當(dāng)啟用 HPA 時,建議從它們的清單中 刪除 Deployment 和/或 StatefulSet 的 ?spec.replicas
? 的值。 如果不這樣做,則只要應(yīng)用對該對象的更改,例如通過 ?kubectl apply -f deployment.yaml
?, 這將指示 Kubernetes 將當(dāng)前 Pod 數(shù)量擴(kuò)縮到 ?spec.replicas
? 鍵的值。這可能不是所希望的, 并且當(dāng) HPA 處于活動狀態(tài)時可能會很麻煩。
請記住,刪除 ?spec.replicas
? 可能會導(dǎo)致 Pod 計(jì)數(shù)一次性降級,因?yàn)榇随I的默認(rèn)值為 1。 更新后,除 1 之外的所有 Pod 都將開始其終止程序。之后的任何部署應(yīng)用程序都將正常運(yùn)行, 并根據(jù)需要遵守滾動更新配置。你可以根據(jù)修改部署的方式選擇以下兩種方法之一來避免這種降級:
kubectl apply edit-last-applied deployment/<Deployment 名稱>
?spec.replicas
?。當(dāng)你保存并退出編輯器時,?kubectl
?會應(yīng)用更新。 在此步驟中不會更改 Pod 計(jì)數(shù)。spec.replicas
?。如果你使用源代碼管理, 還應(yīng)提交你的更改或采取任何其他步驟來修改源代碼,以適應(yīng)你如何跟蹤更新。kubectl apply -f deployment.yaml
?使用服務(wù)器端 Apply 機(jī)制, 你可以遵循交出所有權(quán) 說明, 該指南涵蓋了這個確切的用例。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: