$\pi: E \rightarrow M$ ($E$ is a vector bundle) admits a global frame iff $E$ is a trivial vector bundle over $M$. (Proof of backward direction is clear: if $F$ is a diffeomorphism between $E$ and $M \times \mathbb R^k$, then $p \mapsto (p, e_i) \mapsto F^{-1}(p, e_i)$ forms a basis of $E$ for $i = 1, \cdots, k$.)
Proof of forward direction: Let $E$ be a vector bundle over $M$ of dimension $k$, and let $s_1, \cdots, s_k$ be a global frame. For all $ p \in M$, there exists a local trivialization $\Phi: \pi^{-1}(U_p) \rightarrow U_p \times \mathbb R^k$. Since $\Phi|_{E_p}$ is a linear isomorphism of vector spaces, and $s_1(p), \cdots, s_k(p)$ forms a basis of $E_p$, $\Phi(s_1(p)), \cdots, \Phi(s_k(p))$ forms a basis of $\{p\} \times \mathbb R^k$.
Note that $(p, e_1), \cdots, (p,e_k)$ is a basis of $\{p\} \times \mathbb R^k$. Hence, I can form a linear mapping  between basis $\Phi(s_1(p)), \cdots, \Phi(s_k(p))$ and another basis $(p, e_1), \cdots, (p,e_k)$,
$$(p, e_i) = \sum_{j=1}^k a_j^i(p) \Phi(s_j(p))$$
It suffices to prove that $a_j^i$ is smooth, but how do I prove so?
Any suggestions?
 A: 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$.
