缩小Kubernetes豆荚

时间:2017-11-30 11:38:45

标签: kubernetes

我正在使用

kubectl scale --replicas=0 -f deployment.yaml

停止所有正在运行的广告连播。请告诉我是否有更好的方法可以将所有正在运行的pod分解为零保持配置,部署等等。以便我可以根据需要进行扩展。

7 个答案:

答案 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

enter image description here