我是K8s和Kubernetes的新手。有人能给我解释一下下面的kube状态指标之间的区别吗……我已经包括了我能找到的最好的描述,但我需要更多的背景:
- kube_deployment_spec_replicas -部署所需的Pod数量。
- kube_deployment_status_replicas -每个部署的副本数量。
- kube_deployment_status_replicas_available -每个部署的可用副本数。
- kube_deployment_status_replicas_unavailable -每个部署不可用的副本数量。
所以我的想法是:
- kube_deployment_spec_replicas=desired
- kube_deployment_status_replicas=current
那么现在的pod,有的有,有的没有。
这是否意味着kube_deployment_status_replicas_unavailable = kube_deployment_status_replicas-kube_deployment_status_replicas_available
会很感激对这些指标的确切含义有更深入的理解。
2条答案
按热度按时间xcitsw881#
我想你已经回答了自己的问题。
在k8s中,您可以向上/向下扩展部署,但这种能力取决于节点容量。
因此,如果您开始部署一些服务和2个副本。这将liekly部署的权利,你会有2吊舱可马上。需要2个,可用2个,无不可用。
现在,假设您将此部署扩展到100个Pod。您将有100个所需的副本,但最初有2个实际副本,2个可用,然后调度程序将“调度”100个pod,但节点可能没有容量,因此它可能能够部署20个,而80个将是“挂起”的,因此不可用。Desired为100,actual为20,unavailable为80,直到集群扩展(假设您有autoscaler或手动添加节点),然后可以调度Pod并使其可用。
9rnv2umw2#
所以我的想法是:
kube_deployment_spec_replicas=desired
kube_deployment_status_replicas=current
您在这一点上是正确的,
kube_deployment_spec_replicas
是期望的状态,kube_deployment_status_replicas
是实际/当前状态kube_deployment_status_replicas_unavailable
-是尚未可用的(例如失败的pod)。kube_deployment_status_replicas_unavailable
=kube_deployment_spec_replicas
减去kube_deployment_status_replicas_available
minReadySeconds确定pod将被视为可用还是不可用。
minReadySeconds是一个可选字段,指定新创建的Pod在没有任何容器崩溃的情况下应该准备好的最小秒数,以便将其视为可用。
如果minReadySeconds设置为60,则需要在没有任何崩溃的情况下运行60秒才能被视为“可用”。