# Kubernetes
### Kubernetes requires nodes in your cluster to run pods.
ref: https://kubernetes.io/docs/concepts/cluster-administration/cluster-autoscaling/
**This means providing capacity for the
workload Pods and for Kubernetes itself.**
You can adjust the amount of resources
available in your cluster automatically:
**_node autoscaling._**
#### You can either :
- **change the number of nodes** (**horizontal scaling**)
**or**
- **change the capacity** **(vertical scaling**)
_that nodes provide._
:bookmark: The first approach is referred to as **horizontal scaling**,
:bookmark: The second is referred to as **vertical scaling**.
Kubernetes can even provide multidimensional automatic scaling for nodes.
## Feature Gates to Client-Go: Enhancing Flexibility and Control
ref : By Ben Luddy (Red Hat), Lukasz Szaszkiewicz (Red Hat) | Monday, August 12, 2024
https://kubernetes.io/blog/2024/08/12/feature-gates-in-client-go/
Kubernetes **components use on-off switches** called **feature gates to manage the risk of adding a new feature**.
The feature gate mechanism **is what enables incremental graduation of a feature through the stages Alpha, Beta, and GA.**
Kubernetes components, such as **kube-controller-manager and kube-scheduler**, use the* client-go library to interact with the API.
The same **library is used** across the Kubernetes ecosystem **to build controllers, tools, webhooks, and more**.
**client-go now includes its own feature gating mechanism**, giving developers and cluster administrators **more control over how they adopt client features**.
To learn more about Feature Gates :arrow_forward: https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/
_contains an overview of the_
**various feature gates an administrator can specify on different Kubernetes components.**
```go=
--feature-gates=...,GracefulNodeShutdown=true
```