By a partition of unity argument, one can show that any vector bundle admits an inner product, that is a smooth symmetric $2$-tensor that is symmetric positive definite: for any smooth sections $v$ and $w$, the function
$$
p \mapsto \langle v,w\rangle_p
$$ is smooth.
Suppose $E$ is a vector bundle over $M$, of rank $k$, and chose an inner product. Suppose $E$ admits a global frame $(v_1,\ldots,v_k)$. Then
\begin{align*}
\Phi : E &\to M \times \mathbb{R}^k \\
(p,u) &\mapsto \left(p,(\langle u,v_1\rangle_p,\ldots,\langle u , v_k \rangle_p)\right)
\end{align*}
is a global trivialization.
Here is a construction of a smooth inner product on any finite rank smooth vector bundle $E$. Choose a locally finite open cover $\{U_i\}_{i\in I}$ such that $E$ is locally trivial on each $U_i$:
$$
\forall i \in I,~ \exists \Phi_i : E \overset{\sim}{\to} U_i\times \mathbb{R}^k
$$
where $\Phi_i$ is smooth. Define on $E|_{U_i}$ the smooth inner product
$$
\langle u,w\rangle_i = \langle {\Phi_i}_*u,{\Phi_i}_*w\rangle_{\mathbb{R}^k}
$$
that is $\langle \cdot,\cdot \rangle_i = (\Phi_i)^* \langle\cdot,\cdot\rangle_{\mathbb{R}^k}$. Then $\langle\cdot,\cdot \rangle_i$ is smooth over $U_i$ because so is $\Phi_i$ and the natural inner product of $\mathbb{R}^k$.
Chose a smooth partition of unity $\{\varphi_i\}_{i\in I}$ with respect to the locally finite open cover $\{U_i\}_{i\in I}$, and define, for $u$ and $w$ sections of $E$:
$$
\langle u,v \rangle = \sum_{i\in I} \varphi_i \cdot \langle u,w\rangle_i
$$
It is clearly smooth because it is a locally finite sum of smooth sections. It is clearly bilinear and symmetric. Moreover, at a point $p$:
$$
\langle u,u\rangle_p = \sum_{i \in I} \varphi_i(p) \langle u,u \rangle_i
$$
As all terms are nonnegative, it is nonnegative. Moreover, it is zero if and only if in every $U_i$, $u|_{U_i} = 0$ (this is because $\Phi_i$ are diffeomorphisms and $\langle\cdot, \cdot \rangle_{\mathbb{R}^k}$ is positive definite). Thus, it is an inner product on $E$.