Helm wait till dependency deployment are ready on kubernetes
Asked Answered
F

1

8

I'm using helm chart to deploy my application on kubernetes. But services that I'm using in my stack depends on other services how do I make sure helm will not deploy until the dependencies are up?

Fdic answered 28/2, 2019 at 15:15 Comment(0)
C
11

Typically you don't; you just let Helm (or kubectl apply -f) start everything in one shot and let it retry starting everything.

The most common pattern is for a container process to simply crash at startup if an external service isn't available; the Kubernetes Pod mechanism will restart the container when this happens. If the dependency never comes up you'll be stuck in CrashLoopBackOff state forever, but if it appears in 5-10 seconds then everything will come up normally within a minute or two.

Also remember that pods of any sort are fairly disposable in Kubernetes. IME if something isn't working in a service one of the first things to try is kubectl delete pod and letting a Deployment controller recreate it. Kubernetes can do this on its own too, for example if it decides it needs to relocate a pod on to a different node. That is: even if some dependency is up when your pod first start sup, there's no guarantee it will stay up forever.

Catalyst answered 2/3, 2019 at 2:47 Comment(2)
HI, we need the same functionality with helm, I mean chart B that will deployed just after chart A is installed and up and running, similar to wait command. after few years, there is better solution?Impecunious
This setup hasn't changed. The last paragraph is still relevant: the application B still needs some way to react if application A fails after startup time, and that's not really a different situation from A not being ready yet.Catalyst

© 2022 - 2024 — McMap. All rights reserved.