Yes, sort of. The top level page table is per-process, but it can contain a single entry (on 64-bit architectures or several on 32-bit) for the kernel address space. This entry would then point to a common "sub" page table that is shared between every process. These entries would also be marked as "global", such that the hardware preserves the virtual to physical translations in the TLB on a context switch.
Each process needs kernel space entries as kernel code may be executed at any time in any process. For example, any interrupt or system call will immediately try to access kernel addresses as it executes the appropriate handler. Without the mappings present in the current process's address space, the kernel code would not be accessible.
By having each process share a common "sub" page table for the kernel addresses, the kernel does not have to duplicate the entries in memory and waste space. And the any updates to the kernel's memory usage only requires modifying one page table and not every process.