Azure 使用kubectl执行CURL

Azure 使用kubectl执行CURL,azure,curl,kubernetes,azure-aks,Azure,Curl,Kubernetes,Azure Aks,我正试图用kubectl像这样执行curl命令 kubectl exec POD_NAME "curl -X PUT http://localhost:8080/abc -H \"Content-Type: application/json\" -d '{\"name\":\"aaa\",\"no\":\"10\"}' " 贝洛布误差 OCI runtime exec failed: exec failed: container_linux.go:345: starting container

我正试图用
kubectl
像这样执行
curl
命令

kubectl exec POD_NAME "curl -X PUT http://localhost:8080/abc -H \"Content-Type: application/json\" -d '{\"name\":\"aaa\",\"no\":\"10\"}' "
贝洛布误差

OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"kubectl exec POD_NAME "curl -X PUT http://localhost:8080/abc -H \"Content-Type: application/json\" -d '{\"name\":\"aaa\",\"no\":\"10\"}'\": 
stat kubectl exec POD_NAME "curl -X PUT http://localhost:8080/abc -H \"Content-Type: application/json\" -d '{\"name\":\"aaa\",\"no\":\"10\"}' ": no such file or directory" 
:unknown command terminated with exit code 126
我曾试图逃避引用,但没有运气。然后我尝试了简单的卷曲

kubectl exec -it POD_NAME curl http://localhost:8080/xyz
除此之外,这将提供适当的输出。有什么帮助吗

更新:


但是,当我运行容器的交互式(
kubectl exec-it POD_NAME/bin/bash
)模式,然后运行容器内部的curl时,就像champ一样,我认为您需要这样做:

kubectl exec POD_NAME curl "-X PUT http://localhost:8080/abc -H \"Content-Type: application/json\" -d '{\"name\":\"aaa\",\"no\":\"10\"}' "

错误表明它试图将
中的所有内容解释为单个命令,而不是带有参数的命令。所以它本质上是在寻找一个名为

的可执行文件,该命令在Centos中对我有效。但如果使用windows,它将无法工作

kubectl-n elk exec-it eai-lf-elasticsearch-0--curl-XPUThttp://localhost:9200/_snapshot/testsnapfromcurl?pretty -H'内容类型:application/json'-d'{“Type”:“fs”,“settings”:{“location”:“/usr/share/elasticsearch/backups/testsnapfromcurl”} 默认容器名称为elasticsearch。 使用“kubectl Descripte pod/elasticsearch-0-n elk”查看该pod中的所有容器。 { “已确认”:正确 }


正是因为这个原因,您不需要在那里加任何引号
kubectl exec POD_NAME--curl…
。否则,整个引号分隔的字符串将被视为单个参数。我认为这取决于您使用的shell,我使用的是powershell,因此
--
不适用于我的powershell
还表示单个字符串文字,因此是单个参数。