如何获取StatefulSet Kubernetes的副本数量

时间:2019-06-03 11:11:46

标签: kubernetes google-cloud-platform google-kubernetes-engine autoscaling statefulset

我正在尝试在Kubernetes上自动缩放StatefulSet。为此,我需要获取当前的吊舱数量。

在处理部署时:

kubectl describe deployments [deployment-name] | grep desired | awk '{print $2}' | head -n1

这将输出一个数字,即当前部署的数量。

但是,当您运行

kubectl describe statefulsets

我们没有得到太多的信息。知道如何获取有状态集的当前副本数吗?

2 个答案:

答案 0 :(得分:2)

您应该运行以下命令之一

master $ kubectl get statefulsets
NAME      DESIRED   CURRENT   AGE
web       4         4         2m
master $
master $ kubectl get sts
NAME      DESIRED   CURRENT   AGE
web       4         4         2m


number of running pods
---------------------
master $ kubectl describe sts web|grep Status
Pods Status:        4 Running / 0 Waiting / 0 Succeeded / 0 Failed

another way
------------
master $ kubectl get sts --show-labels
NAME      DESIRED   CURRENT   AGE       LABELS
web       4         4         33s       app=nginx

master $ kubectl get po -l app=nginx
NAME      READY     STATUS    RESTARTS   AGE
web-0     1/1       Running   0          56s
web-1     1/1       Running   0          55s
web-2     1/1       Running   0          30s
web-3     1/1       Running   0          29s

master $ kubectl get po -l app=nginx --no-headers
web-0     1/1       Running   0         2m
web-1     1/1       Running   0         2m
web-2     1/1       Running   0         1m
web-3     1/1       Running   0         1m
master $
master $
master $ kubectl get po -l app=nginx --no-headers | wc -l
4

答案 1 :(得分:0)

 kubectl get sts web -n default -o=jsonpath='{.status.replicas}'

这也适用于.status.readyReplicas和.status.currentReplicas

来自github.com/kubernetes

  

//副本是StatefulSet控制器创建的Pod的数量。
  副本int32

     

// readyReplicas是由StatefulSet控制器创建的具有就绪条件的Pod的数量。
  ReadyReplicas int32

     

// currentReplicas是StatefulSet控制器从StatefulSet版本创建的Pod的数量。   //由   currentRevision。
  CurrentReplicas int32