SkyWalking backend supports multiple storage implementors. Most of them could initialize the storage, such as Elastic Search, Database automatically when the backend startup in first place.
But there are some unexpected happens based on the storage, such as
When create Elastic Search indexes concurrently, because of several backend instances startup at the same time.
,
there is a change, the APIs of Elastic Search would be blocked without any exception.
And this has more chances happen in container management platform, like k8s.
That is where you need Init mode startup.
Only one single instance should run in Init mode before other instances start up. And this instance will exit graciously after all initialization steps are done.
Use oapServiceInit.sh
/oapServiceInit.bat
to start up backend. You should see the following logs
2018-11-09 23:04:39,465 - org.apache.skywalking.oap.server.starter.OAPServerStartUp -2214 [main] INFO [] - OAP starts up in init mode successfully, exit now...
Initialization in this mode would be included in our Kubernetes scripts and Helm.