bitauth/chaingraph

Assign pods to the most appropriate nodes

Opened this issue · 0 comments

Right now we basically leave pod assignments up to chance – we should assign pods more intelligently, probably with Affinity and Anti-Affinity.

Ideally, the Postgres process should go to the most powerful Kubernetes node, and the first Hasura pod should go to the same node as Postgres. (The chart doesn't currently assist with scaling Hasura – the hasura deployment's replicas field is hard-coded to 1.)

After that, any "heavy" BCH nodes (mainnet or scalenet) should be distributed across remaining Kubernetes nodes, avoiding both Postgres and other heavy full nodes. (If we run out of Kubernetes nodes, heavy full nodes' greatest anti-affinity should be Postgres, since it's our user-facing workhorse.) Finally, thinner nodes (testnet4) can be distributed wherever.