kubernetes - 如何使用 initContainers 检查 cassandra 是否已启动并正在运行
问题描述
在我的 kubernetes 集群中,我有使用cassandra:4.0
图像的 cassandra statefulset。我希望我的应用程序 pod 等待 cassandra 首先启动并运行。
我想这可以通过添加initContainers
应用程序 pod 部署来完成。initContainer 将检查 cassandra 的状态,从而阻止应用程序 pod 启动,直到它确保 cassandra 的可用性。
我不知道如何创建这样的 initContainer 来检查 cassandra statefulset 的状态,我在网上查过但没有找到任何与 cassandra 相关的示例。
任何帮助将不胜感激。
注意:我没有使用实际的 cassandra 图像,而不是这个示例之一 ( gcr.io/google-samples/cassandra:v13
)
解决方案
您可以使用 shell 单行命令等待创建 cassandra 服务,例如:
for i in {1..100}; do sleep 1; if dig cassandraservice; then exit 0; fi; done; exit 1
参考:https ://kubernetes.io/docs/concepts/workloads/pods/init-containers/
推荐阅读
- python - 如何解决卤化物约束违规问题(在 Python 中)
- github - GitHub API 创建回购返回 403?
- sql - 查询每季度的运行总增长
- unity3d - Unity WebGL 视频文件格式
- android - 将 emit 与 Kotlin StateFlow 一起使用
- java - 如何使用springboot微服务创建两个实体
- python - pysftp Paramiko PasswordRequiredException:私钥文件已加密
- ios - Swift - Firebase - 异步下载图像和数据会导致集合视图单元格中的错误显示
- python - 没有元数据的 Dask read_parquet 分区
- python - Amazon s3 文件下载“TypeError:预期的字符串或类似字节的对象”