4. In the real world
● Deploy by Kubespray
● Not set cloud-provider
● Pod with local-storage
● Deploy with node selector
5. Restriction & Limit
● Not support regional Instance Group
● Handle up to 1000 nodes running 30 pods each
● Scale time
- Scale Up : 30 seconds
- Down : 10 mins
● Scale UP
- Not scale up/down when pod has node selector
● Scale Down
- Bulk delete up to 10 nodes
- Pods with restrictive PodDisruptionBudget.
- Pods with local storage. *
- CPU usage > 20%
6. - Kube-system pods that:
○ are not run on the node by default, *
○ don't have PDB or their PDB is too restrictive (since CA 0.6).
- Pods that are not backed by a controller object (so not created by
deployment, replica set, job, stateful set etc). *
- Pods that cannot be moved elsewhere due to various constraints (lack of
resources, non-matching node selectors or affinity, matching
anti-affinity, etc)
- Pods that have the following annotation set:
"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
9. Step 2 Prepare Extra Minion
● Create Base Image :
- Setup system config
- Install kubelet, kubeadm, kubectl
● Create Instance Templete:
- Startup script for kubelet config (set Provider ID)
- kubeadm join ( Never expire token )
● Create Instance Group
- Multi zone, *ACL
- Do not enable auto scaling of instance group
10. Provider ID
Source code have already told you
kubectl describe node
Every nodes include master, ingresses, minions need Provider ID.