kubernetes - “cat /tmp/healthy”是配置 Kubernetes 命令探测的唯一方法吗?
问题描述
我试图准确了解 kubernetes 命令探针的工作原理,但文档对此非常枯燥。
我在 kubernetes 命令探针上找到的每个示例都给出了相同类型的代码:
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
我似乎可以将任何命令传递给 exec 对象。所以我的问题是:
- 探针命令的其他好例子是什么?
- Kubernetes 将如何确定命令的结果是成功还是失败?
解决方案
您可以将任何命令作为exec
探针传递。
容器的健康状况由退出代码决定。如果命令成功,它会返回0
,并且kubelet
认为 Container 是活着且健康的。任何与退出代码不同的东西0
都被认为是不健康的。
一些应用程序提供了用于健康检查的二进制文件/脚本。
例子:
- RabbitMQ:提供
rabbitmq-api-check
- PostgreSQL:提供
pg_isready
- MySQL:提供
mysqladmin ping
exec
当您需要使用预期健康的逻辑定义整个脚本时,使用探针也很有用。
推荐阅读
- python - 如何修复IndexError:python中的字符串索引超出范围
- java - 无法运行 java 文件(修复类路径时遇到问题)
- python-3.x - 如何修复:提交 Python 代码时,预期为 2 输出,但在 PASTA 上得到 0
- lightbox2 - 如何在 Lightbox v2.10.0 中链接 Youtube 视频
- docker - mesos + marathon组合中服务ip变化的解决方法能告诉我吗?
- java - 在杰克逊序列化后避免列表的类型信息
- angular - 异步修改数组 observable 中的每一项,并返回修改后的 observable
- javascript - 每隔几分钟编辑同一条消息
- php - 如何使用 PHP 代码将 XML 结果转换为 JSON 数组或 PHP 数组
- java - Postman 中应使用 ',' 而不是 't'