K-fold cross-validation with validation and test set
You can leave a portion of your dataset as a hold-out test set for the final model validation from the beginning, and proceed with the k-fold cross-validation strategy with the rest of the data as follows:
 
source: https://scikit-learn.org/stable/modules/cross_validation.html
This way, you do not have the overlap you mention and, mainly, you make sure that the model is finally evaluated with a never-seen before data.