A kernel is a more general concept, but an impulse response is a special case of a kernel. TheOne usage of the term kernel is used to describe an integral transform:
$$(Tx)(t)=\int_{t_1}^{t_2}x(\tau)K(\tau,t)d\tau\tag{1}$$$$y(t)=\int_{-\infty}^{\infty}x(\tau)K(\tau,t)d\tau\tag{1}$$
The function $K(\tau,t)$ is called the kernel of the integral transform.
If you compare $(1)$ to the convolution
$$y(t)=\int_{-\infty}^{\infty}x(\tau)h(t-\tau)d\tau\tag{2}$$
then you see that the kernel of the convolution $(2)$ is given by
$$K(\tau,t)=h(t-\tau)\tag{3}$$
Note that the term kernel is also used to describe linear transformations in the discrete domain:
$$y[n]=\sum_{m=-\infty}^{\infty}x[m]K[m,n]\tag{4}$$
Discrete-time convolution is again a special case of $(4)$ with $K[m,n]=h[n-m]$.
In signal processing we regularly use integrallinear transforms, each one with a different kernel such as $(1)$ and $(4)$. The most well-known examples apart from convolution are the Fourier transform, the Laplace transform, the $\mathcal{Z}$-transform, and the Hilbert transform (which is in fact just a convolution).
It is also common to use (convolution) kernel to denote the impulse response of a discrete-time system.