You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Which component are you using?: /area cluster-autoscaler
What version of the component are you using?:
Component version: 1.31.0
What k8s version are you using (kubectl version)?: 1.31
kubectl version Output
$ kubectl version
Client Version: v1.31.2
Kustomize Version: v5.4.2
Server Version: v1.31.3
What environment is this in?: Google Compute Engine (virtual machines) with Instance Templates and Instance Groups. VMs are stock Debian 12.0 with kubelet installed from official sources. NOT using https://cloud.google.com/kubernetes-engine?hl=en!
What did you expect to happen?: When there are pending pods to be scheduled with resource requests that would be satisfied by the creation of a machine from the configured machine group, machines should instantiate, nodes should join, and the scaling work.
What happened instead?: No scheduling, the pods kept waiting.
I1213 15:23:16.418500 1 orchestrator.go:594] Pod ci-runners-normal/amd64-XXXX-task-YYYY can't be scheduled on https://www.googleapis.com/compute/v1/projects/XXX/zones/YYY/instanceGroups/ci-e2-standard-4, predicate checking error: Insufficient cpu, Insufficient memory; predicateName=NodeResourcesFit; reasons: Insufficient cpu, Insufficient memory; debugInfo=
How to reproduce it (as minimally and precisely as possible):
Create a master VM that is very weak (e2-small) which will run the Kubernetes cluster, and go through the steps of installing kubeadm, kubelet, flannel, to get the cluster ready.
Have a Pod-Spec that requests something like "4 CPU"s and "16000Mi" RAM.
Create an e2-standard-4 (4 CPU, 16G RAM) instance template and a corresponding instance group.
Set up autoscaler according to the docs, provide the instance group name and the scaling factor.
Try to deploy the pod. Creation of the e2-standard-4 instance should satisfy the requirements to deploy the pod to a sufficiently powerful machine, but nothing happens.
Start a machine manually and make it kubeadm join, and then the scheduling works.
Create more replicas of the previous pod. Now new VMs will keep on starting, because the scheduler now knows that the aforementioned group can spawn new VMs that satisfy the requirements.
Anything else we need to know?:
This issue is part of the "usual" inability-to-scale-up-from-0-workers situation. My previous attempt was using nodeSelector and hard-coded labels (that establish after the VMs initialise and perform kubeadm join) to pin pods to appropriate nodes, but that was not working either.
If there is a node alive in the group, the autoscaler (until the cluster is reset) finds the necessary connection and knows which group to instantiate.
Kubernetes knows about the capabilities of the node
Which component are you using?: /area cluster-autoscaler
What version of the component are you using?:
Component version: 1.31.0
What k8s version are you using (
kubectl version
)?: 1.31kubectl version
OutputWhat environment is this in?: Google Compute Engine (virtual machines) with Instance Templates and Instance Groups. VMs are stock Debian 12.0 with
kubelet
installed from official sources. NOT using https://cloud.google.com/kubernetes-engine?hl=en!What did you expect to happen?: When there are pending pods to be scheduled with resource requests that would be satisfied by the creation of a machine from the configured machine group, machines should instantiate, nodes should join, and the scaling work.
What happened instead?: No scheduling, the pods kept waiting.
How to reproduce it (as minimally and precisely as possible):
e2-small
) which will run the Kubernetes cluster, and go through the steps of installingkubeadm
,kubelet
,flannel
, to get the cluster ready.e2-standard-4
(4 CPU, 16G RAM) instance template and a corresponding instance group.autoscaler
according to the docs, provide the instance group name and the scaling factor.e2-standard-4
instance should satisfy the requirements to deploy the pod to a sufficiently powerful machine, but nothing happens.kubeadm join
, and then the scheduling works.Anything else we need to know?:
This issue is part of the "usual" inability-to-scale-up-from-0-workers situation. My previous attempt was using
nodeSelector
and hard-coded labels (that establish after the VMs initialise and performkubeadm join
) to pin pods to appropriate nodes, but that was not working either.If there is a node alive in the group, the
autoscaler
(until the cluster is reset) finds the necessary connection and knows which group to instantiate.Kubernetes knows about the capabilities of the node
The
MachineType
API sufficiently describes the performance capabilitiesThe text was updated successfully, but these errors were encountered: