Why is my primary key a separate relation taking up storage? I have a table with a primary key. Postgres automatically created an index on this primary key, and it is separately taking up +34% more storage.

Why does Postgres not simply keep the table sorted by the primary key? It's auto increment so it will always be in order. I tried CLUSTER but that did not decrease the size of this primary key index. Why is a primary key index even needed if the table itself will always be in that order?
In PostgreSQL, the only way to guarantee uniqueness is with a unique index. So a unique index is used to implement all primary key and unique indexes in PostgreSQL.
The extra space that the primary key takes is to be expected.

Also, PostgreSQL does not maintain a certain order in the table. Whenever you update a row, it moves somewhere else, and the free space left by past updates and deletes is reused for future inserts.