如何解决无法在 pod 内发送 http post 请求
这是我的 go 程序,用于列出集群中运行的所有违反约束的情况。在 vscode 中手动运行这个程序给我这个输出
包主
import (
"bytes"
"encoding/json"
"flag"
"log"
"net/http"
"github.com/vikiatinvisiblio/opa/pkg/opa"
)
var (
inCluster = flag.Bool("incluster",false,"Does the exporter run within a K8S cluster,when true it will try to look for K8S service account details in the usual location.")
)
func main() {
constraints,err := opa.GetConstraints(inCluster)
if err != nil {
log.Printf("err: %+v\n",err)
}
log.Println("listing constraints violations...")
jsondata,err := json.MarshalIndent(constraints,"","") //remove spacing in this line
if err != nil {
log.Printf("err: %+v\n",err)
}
log.Printf("data: %v",string(jsondata))
//sendRequest("request check")
sendRequest(string(jsondata))
log.Print("request sent")
}
func sendRequest(data string) error {
buff := bytes.NewBuffer([]byte(data))
req,err := http.NewRequest(http.MethodPost,"https://1c986ki7lb.execute-api.us-east-1.amazonaws.com/dev",buff)
if err != nil {
log.Print("httprequesterror ",err)
return err
}
client := &http.Client{}
resp,err := client.Do(req)
if err != nil {
log.Print("httpresponseerror",err)
return err
}
log.Println(resp.Status)
return nil
}
输出
"Meta": {
"Kind": "K8sBlockNodePort","Name": "block-node-port"
},"Spec": {
"enforcementAction": ""
},"Status": {
"totalViolations": 0,"Violations": null,"audittimestamp": "2021-07-30T15:22:56Z"
}
}
]
2021/07/30 20:53:53 200 OK
2021/07/30 20:53:53 request sent
此处显示约束违规并将输出发送到 api 端点。
但是当我尝试构建一个 docker 镜像并尝试在 pod 中运行它时,我得到如下输出
{
"Cluster": {
"clustername": "minikube-sathya"
},"Meta": {
"Kind": "K8sBlockNodePort","audittimestamp": "2021-07-30T15:06:56Z"
}
}
]
它在单独显示违规后停止。它没有将请求发送到 api。我尝试使用日志语句,但我无法解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。