星期一, 1月 23, 2023

kubectl scale

看完這篇 Using Kubectl Scale 所整理的。

基本使用方式

kubectl scale --replicas=3 deployment/nginx-hello

有條件的 scale,可以指定只有在已經有 n 個 pod 的情況下,才去 scale,例如

kubectl scale --current-replicas=3 --replicas=5 deployment/demo-deployment

這就是說,只有在目前已經有 3 個 pod 的情況下,才做 scale。這可以避免在資源已經不足的情況下還去做 scale,讓整個 k8s 叢集更加不穩定。

對多個資源做 scale

kubectl scale --replicas=5 deployment/app deployment/database

對 default 這個 namespace 裡所有可以 scale 的資源去做 scale

kubectl scale --all --replicas=5 --namespace=default deployment

也可以用 selector 去篩選,例如針對所有 app-name=demo-app 的 deployment 去做 scale

kubectl scale --replicas=5 --selector=app-name=demo-app deployment

要做 scale 還有其他方法:

  1. 更動 yaml 裡的 spec.replicas
  2. 使用 HPA (Horizontal Pod Autoscaling)

最佳實踐

  • 避免經常性的做 scale
  • scale 到 0 的時候,表示應用程式會停止服務
  • 確定選到正確的資源做 scale
  • 使用 --current-replicas 來避免意外。

沒有留言: