我已经定义了一个节点池,最小实例设置为1,最大实例设置为5,并启用了自动缩放。
然而,它似乎并没有缩小规模。
正在讨论的节点上运行着以下POD:
除了在守护进程集中定义的redis
pod之外,上述所有pod都在库贝-system
命名空间中。
是否需要其他配置?也许是预算?
kubectl descripe-n kube system configmap cluster autoscaler status的输出
Name: cluster-autoscaler-status
Namespace: kube-system
Labels: <none>
Annotations: cluster-autoscaler.kubernetes.io/last-updated=2018-06-15 10:40:16.289611397 +0000 UTC
Data
====
status:
----
Cluster-autoscaler status at 2018-06-15 10:40:16.289611397 +0000 UTC:
Cluster-wide:
Health: Healthy (ready=4 unready=0 notStarted=0 longNotStarted=0 registered=4 longUnregistered=0)
LastProbeTime: 2018-06-15 10:40:14.942263061 +0000 UTC
LastTransitionTime: 2018-06-15 09:17:56.845900388 +0000 UTC
ScaleUp: NoActivity (ready=4 registered=4)
LastProbeTime: 2018-06-15 10:40:14.942263061 +0000 UTC
LastTransitionTime: 2018-06-15 09:18:55.777577792 +0000 UTC
ScaleDown: NoCandidates (candidates=0)
LastProbeTime: 2018-06-15 10:40:14.942263061 +0000 UTC
LastTransitionTime: 2018-06-15 09:39:03.33504599 +0000 UTC
NodeGroups:
Name: https://content.googleapis.com/compute/v1/projects/gcpwp-ayurved-subs-staging/zones/europe-west1-b/instanceGroups/gke-wordpress-preempt-nodes-9c33afcb-grp
Health: Healthy (ready=3 unready=0 notStarted=0 longNotStarted=0 registered=3 longUnregistered=0 cloudProviderTarget=3 (minSize=2, maxSize=3))
LastProbeTime: 2018-06-15 10:40:14.942263061 +0000 UTC
LastTransitionTime: 2018-06-15 09:17:56.845900388 +0000 UTC
ScaleUp: NoActivity (ready=3 cloudProviderTarget=3)
LastProbeTime: 2018-06-15 10:40:14.942263061 +0000 UTC
LastTransitionTime: 2018-06-15 09:18:55.777577792 +0000 UTC
ScaleDown: NoCandidates (candidates=0)
LastProbeTime: 2018-06-15 10:40:14.942263061 +0000 UTC
LastTransitionTime: 2018-06-15 09:39:03.33504599 +0000 UTC
Events: <none>
同样如GKE常见问题中所述,节点不会被缩减,直到在该节点上运行的所有pod的cpu和内存请求之和小于该节点可分配的50%。
我认为问题在于度量服务器和kube dns。有关详细信息,请参见GKE autoscaler常见问题解答。简单的回答是,不建议让metrics服务器可收回。您可以将kube dns设置为可收回(详细信息见此处)。
至于你的具体问题,我认为你需要kubectl drain
节点(如果节点还没有启动,该命令也会封锁)
有一些约束可以阻止节点缩小。
您应该根据什么类型的POD可以阻止CA删除节点来逐个验证列出的POD?文档这将帮助你发现是否有一个豆荚阻止它。
如果它确实是redis
pod,那么您可以尝试使用“安全驱逐”注释:
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"
如果它是一个系统吊舱,我会在其他节点上尝试同样的方法,看看缩小规模对它们是否有效。根据GKE文档,您应该能够将集群缩小到每个集群1个节点,或者完全针对特定的节点池。
我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他
null
我正在尝试让cadence在kubernetes集群上运行。然而,我注意到Cadence服务器初始化中有一个bug,它阻止Cassandra脚本正确初始化模式。https://github.com/uber/cadence/issues/1713:所以我想我会手动完成这一步。我执行了以下步骤- < li >在docker compose上从https://raw . githubuserconte
我一直在努力让DNS插件在CentOS 7.2集群上工作。我使用以下说明安装了群集:http://severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services 在此配置中,主服务器正在运行:etcd、库贝-调度器、库贝-apiserver和库贝-控制器-管理器。这些节点正在运行:do
据我所知,作业对象应该在一定时间后收获豆荚。但是在我的GKE集群(库伯内特斯1.1.8)上,“kubectl get pods-a”似乎可以列出几天前的豆荚。 所有这些都是使用乔布斯API创建的。 我确实注意到在使用 kubectl 删除作业后,pod 也被删除了。 我在这里主要担心的是,我将在批量作业中在集群上运行成千上万个pod,并且不想让内部待办系统过载。
我在GKE上设置了Istio(Kubernetes入口模式,而不是Istio网关)。但是,我无法使用curl从外部访问 istio ingressgateway LoadBalancer 10.48.11.240 35.222.111.100 15020:30115/TCP,80:31420/TCP,443:32019/TCP,31400:31267/TCP,15029:30180/TCP,150