Managing an additional cidr

Cluster information:

Kubernetes version: 1.18.0
Cloud being used: bare-metal
Host OS: Ubuntu 16.04


I would like to know if there is a way I can provide a CIDR to kubernetes say
And request one or more IPs from this IP pool, from within a pod.
And kubernetes manages this pool and allocates one or more un-used IPs from this pool, whenever a pod requests.

And when a pod is terminating, kubernetes should reclaim those IPs that are used by terminated-pod.