kubernetes - 可以在 prestop 挂钩中使用的有效 http 请求是什么?
问题描述
根据以下文档,“HTTP - 针对容器上的特定端点执行 HTTP 请求”这一行。
使用 preStop 钩子,我尝试 curl 运行以下脚本,但它没有返回任何内容。prestop 钩子是否仅限于使用容器内的 Http 请求,即 localhost?
echo "test curl" > /proc/1/fd/1
echo $(curl -s /dev/null http://google.com) > /proc/1/fd/1
echo $(curl -s -o /dev/null -w "%{http_code}" http://google.com) > /proc/1/fd/1
解决方案
不,据我所知,您不仅限于使用preStop's httpGet
容器。您的硬币容器应该可以访问您请求的网址等。所以在您的情况下,您应该可以访问谷歌。
我可以知道你到底想达到什么目标吗?您是否尝试将curl
输出重定向到proc with PID:1
?
curl
当我指定重定向到 STDOUT时,您的命令在容器(具有自身)中完美运行,我的意思是/proc/self/fd/1
kubectl exec -ti curl -- bash
root@curl:/# echo $(curl -s -o /dev/null -w "%{http_code}" http://google.com) > /proc/self/fd/1
301
顺便说一句,您可以使用exec
而不是httpGet
in preStop
,您可以在其中组合echo
和curl
Yaml 将类似于
lifecycle:
preStop:
exec:
command: ["curl", "-XPOST", "-s", "http://google.com" > "/proc/1/fd/1"]
请command
根据您的需要进行调整。我还没有测试过,在飞行中写的
推荐阅读
- python - 为什么真正的不变性在 Python 中是不可能的?
- javascript - @Media 规则有问题。尝试在移动设备中很好地展示
- python - 在 python shell / 交互式提示上找到模块,但在文件中导入时获取 ModuleNotFound
- javascript - 购物车实现 React-Redux
- arrays - 基于单词数组排除标准输出
- php - indexfileiere:1 GET http://localhost:8888/samanelms/Filiere/indexfiliere 500 (Internal Server Error) 剥离学说 php
- r - wilcoxonPairedR 错误 - 测试适用于一个数据集,但不适用于另一个
- python - 如何使用 Tensorflow 为结构化数据制作多类分类器?
- r - 当 x 是离散变量时更改图形 y 轴的下限
- python - 我希望我的搜索功能能够获取多个单词,而不仅仅是一个单词,或者在我的数据库中精确匹配句子