The “right” answer here is really not trying to do that in the first place, and that’s why there’s intentionally no support for this kind of dependency ordering in k8s (or similar systems, docker-compose on one machine had it but there is no distributed support for it in things like Swarm or our Cattle in 1.x).
Let’s assume you perfectly orchestrated deploying them in exactly the order you wanted… Now tomorrow the node(s) the DB is on die and it’s unavailable for a while until it gets rescheduled and started up (ignoring how the DB failing might involve manual steps and recovery from backups).
What do your tiers 2/3/4 do in the meantime? They have to do something reasonable so that the whole stack recovers… So they probably either wait for it to come back up, or crash and get rescheduled themselves.
But if you have that, then you don’t actually care what order they are deployed in anymore. Each tier will just wait (or crash and restart) until its dependencies are available.