我正在使用
kubectl scale --replicas=0 -f deployment.yaml
停止所有正在运行的广告连播。请告诉我是否有更好的方法可以将所有正在运行的pod分解为零保持配置,部署等等。以便我可以根据需要进行扩展。
答案 0 :(得分:22)
你正在做正确的行动; 传统上 scale
动词仅应用于资源名称,如kubectl scale deploy my-awesome-deployment --replicas=0
,这样就无需始终指向特定文件描述了部署,但如果对您来说更方便的话,使用该文件并没有错(我知道)。
答案 1 :(得分:11)
解决方案非常简单直接
data() {
return {
pages: [...Array(2).keys()] // same here, 2 should be your pages amount
};
},
答案 2 :(得分:6)
使用以下命令缩小/放大当前命名空间中的所有部署和有状态集。切换项目时在开发中很有用。
kubectl scale statefulset,deployment --all --replicas=0
如果需要,添加命名空间标志
kubectl scale statefulset,deployment -n mynamespace --all --replicas=0
答案 3 :(得分:4)
我们在这里。 缩减整个命名空间中的所有部署:
kubectl get deploy -n <namespace> -o name | xargs -I % kubectl scale % --replicas=0 -n <namespace>
要按比例放大,请设置--replicas=1
(或其他任何必需的数字)
答案 4 :(得分:1)
如果您想要通用补丁:)
namespace=devops-ci-dev
kubectl get deployment -n ${namespace} --no-headers| awk '{print $1}' | xargs -I elhay kubectl patch deployment -n ${namespace} -p '{"spec": {"replicas": 1}}' elhay
享受:)
您需要更改namespace = devops-ci-dev
成为您的名字空间
答案 5 :(得分:0)
如果您需要使用管道或grep的更多粒度,这是另一个shell解决方案:
for i in $(kubectl get deployments | grep -v NAME | grep -v app | awk '{print $1}'); do kubectl scale --replicas=2 deploy $i; done
答案 6 :(得分:0)
kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
app-gke 3/3 3 3 13m
kubectl scale deploy app-gke --replicas=5
deployment.extensions/app-gke scaled
kubectl get pods
NAME READY STATUS RESTARTS AGE
app-gke-7b768cd6d7-b25px 2/2 Running 0 11m
app-gke-7b768cd6d7-glj5v 0/2 ContainerCreating 0 4s
app-gke-7b768cd6d7-jdt6l 2/2 Running 0 11m
app-gke-7b768cd6d7-ktx87 2/2 Running 0 11m
app-gke-7b768cd6d7-qxpgl 0/2 ContainerCreating 0 4s