There is no defined way of getting it done, You’ll have to act as per the issues you experience during the upgrade.
At least 2x the current installation size. I’d say have at least 3x the space to ensure that you’re not stuck.
You’ll have to start with the standard postgres upgrade process:
replace the postgres 10 template with the default postgres.template.yml
and then try to rebuild. given that you have enough space on your server, an upgrade of database should be performed automatically. follow the instructions on console.
If the upgrade fails, the only easiest way out would be to restore a discourse backup to a new install.
The general process is described in this topic: PostgreSQL 13 update