我有一个在kubernetes中的nginx部署,我想在它被另一个荚运行时从它运行命令。看起来,虽然nginx正在执行部署命令,但它不能是CURLed。
例如:如果有两个豆荚,nginx-1
和nginx-2
。nginx-1
不断地向nginx-2
运行CURLs,而nginx-2
则重复运行它自己的命令,而CURLs在Connection Refused
中失败。
部署片段:注意:在部署中声明了env `${TARGET_HTTP_ADDR}。
nginx-1
:命令:"/bin/sh“、"-c”、“args:”时睡眠30;do curl -v -head ${TARGET_HTTP_ADDR};
nginx-2
:命令:"/bin/sh“、"-c”、“-- args:”虽然是真的;请回显你好;睡眠10;完成
错误重报:
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55ad4f13df50)
* connect to <IP> port 8080 failed: Connection refused
* Failed to connect to nginx-2 80: Connection refused
* Closing connection 0
* curl: (7) Failed to connect to nginx-2 port 80: Connection refused
为什么会发生这种情况,还有什么办法可以避免呢?部署命令似乎不允许吊舱响应卷曲。
如果循环是在nginx-2
的外壳中运行的,那么nginx-1
中的卷曲就会工作。
发布于 2022-05-03 19:22:01
使用“命令”和“args”,您将覆盖通常的对接入口点。因此,在您的荚中,不再有nginx进程在运行,因此没有什么可以对cURL负责。也许你应该把两个容器放在一个容器里。第一个容器与您的nginx,第二个只是一个繁忙的图像,您正在做卷曲。
https://stackoverflow.com/questions/72102751
复制相似问题