看完這篇 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 還有其他方法:
- 更動 yaml 裡的 spec.replicas
- 使用 HPA (Horizontal Pod Autoscaling)
最佳實踐
- 避免經常性的做 scale
- scale 到 0 的時候,表示應用程式會停止服務
- 確定選到正確的資源做 scale
- 使用
--current-replicas
來避免意外。
沒有留言:
張貼留言