Everything that follows is over the real numbers, in the $C^p$ category for $1\leq p\leq \infty$.
Fix an affine bundle of class and consider a fiber-subbundle whose fibers are convex. A partition of unity can be used to average local sections of the subbundle (which exist because it's assumed to be locally trivial) into a global section.
This proves for instance the existence of vector bundle metrics.
Exercise 5.7 of this document suggests using this same result to prove that every surjective morphism of vector bundles has a section (without vector bundle metrics). The outline is to construct an affine bundle whose sections are sections of the vector bundle surjection, and apply the above.
I don't understand how to define this affine bundle of sections/splittings. I also don't understand how I might show it is a fiber bundle: for one, I have no idea why sections/splittings should exist even locally! In the $C^p$ category for $p\geq 1$ this is a consequence of the constant rank theorem, which I consider to be heavier artillery than existence of vector bundle metrics.
Question. What is the affine bundle whose sections are splittings of a given surjective morphism of vector bundles? Why is it a fiber bundle?