[//]: # (Confidential document)
[//]: # (01/05/2025)
[//]: # (v 1.7.3)

# Kubernetes  labs v1.7.3
## Kubernetes extensions :   Scheduler

kube-scheduler is the default scheduler for Kubernetes and runs as part of the control plane.
kube-scheduler selects a node for the pod in a 2-step operation:
- Filtering
- Scoring

The filtering step finds the set of Nodes where it's feasible to schedule the Pod. For example, the PodFitsResources filter checks whether a candidate Node has enough available resource to meet a Pod's specific resource requests. After this step, the node list contains any suitable Nodes; often, there will be more than one. If the list is empty, that Pod isn't (yet) schedulable.

In the scoring step, the scheduler ranks the remaining nodes to choose the most suitable Pod placement. The scheduler assigns a score to each Node that survived filtering, basing this score on the active scoring rules.

Finally, kube-scheduler assigns the Pod to the Node with the highest ranking. If there is more than one node with equal scores, kube-scheduler selects one of these at random.


You can change the default scheduler policy by specifying --policyconfig-file to the kube-scheduler

## Lab1: Custom Scheduler

  - Deploy a pod using custom scheduler
  - Describe the pod for identifying events when using a custom scheduler
  - Delete the pod, update the schedulerName and deploy the pod again


```bash
kubectl apply -f manifests/pod-custom-scheduler-example.yaml
kubectl get pods
kubectl describe po pod-custom-scheduler-example
```

## Clean up
```bash
kubectl delete -f manifests/pod-custom-scheduler-example.yaml
```


