This is not how kubernetes works.
Kubernetes uses a process called reconciliation, where specs/resource definitions that describe an end state get created without any explicit or implicit expectation around ordering. Individual resources/applications/controllers try and retry and retry again to reconcile themselves with that desired end state.
All cross-application references/dependencies have to be explicitly and literally specified prior to submitting the specs/resources. There is no variable interpolation or substitution or anything like that in k8s, unlike some application configuration management systems.
Part of the spec for individual services involves what to do when they fail- should they retry, how many times, for how long, etc. When you have layers of dependent services, the services that have no dependencies may come up and get to a state of readiness right away, whereas other services that have dependencies may try to locate those dependencies, fail, and then get restarted/retried by kubernetes.
Eventually all the parts, sometimes after many individual restarts, are up and ready and therefore reconciled with the desired end state.