Is this a good enough proof by induction?

Although the proof seems right, it is not written correctly. Mainly it seems like you assume the claim throughout (even though you don't). Following would be a better way to write it:

Assume $P(n)$ is true, that is $\sum_{i=0}^n i^2 \leq n^3.$ We want to show $\sum_{i=0}^{n+1} i^2 \leq (n+1)^3.$

Consider \begin{align*} \sum_{i=0}^{n+1} i^2 &= \sum_{i=0}^{n} i^2 + (n+1)^2\\ &\leq n^3 + (n+1)^2\hspace{1cm} \text{(by induction hypothesis)}\\ &= n^3 + n^2+2n+1\\ &\leq n^3 +3n^2+3n+1\\ &=(n+1)^3. \end{align*}

Hence $P(n+1)$ holds.


Sahiba Arora’s answer shows how to write the induction step more clearly. But besides that you also need to show the base case $P(0)$. So I would write the whole proof something like:

Proof. We work by induction on $n$.

The base case $P(0)$ states that $\sum_{i=0}^0 i^2 \leq 0^2$, i.e. $0 \leq 0$, which certainly holds.

For the induction step, assume $P(n)$ is true… [continued as in Sahiba Arora’s excellent answer].

So by induction, the given inequality holds for all natural numbers $n$.