在我的kubernetes集群中,我有cassandra statefulset,它正在使用cassandra:4.0
映像,我希望我的应用程序pod等待cassandra首先启动并运行。
我想这可以通过在应用程序pod部署中添加一个initContainers
来实现。initContainer将检查cassandra的状态,从而阻止应用程序pod启动,直到它确保cassandra的可用性。
我不知道如何创建这样的initContainer来检查cassandra statefulset的状态,我在网上查过了,但是没有找到任何与cassandra相关的例子。
任何帮助都将不胜感激。
注意:我没有使用actual cassandra image,也没有使用这个示例(gcr.io/google-samples/cassandra:v13
)
2条答案
按热度按时间lyfkaqu11#
使用类似于Cassandra舵图准备探测器的方法:
您的Cassandra版本必须与nodetool版本相同。
3npbholx2#
您可以等待cassandra服务被创建,使用一个shell单行命令,如:
参考:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/