在k8s里可以使用preStop钩子来调用外部的HTTP API,并且可以以JSON形式POST提交参数。
下面是一个使用preStop钩子来调用HTTP API的YAML示例:

apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
env:
- name: API_URL
value: "http://example.com/api"
- name: PARAMS_JSON
value: '{"param1":"value1","param2":"value2"}'
command: ["sleep", "3600"]
lifecycle:
preStop:
exec:
command:
- "/bin/sh"
- "-c"
- "curl -X POST -H 'Content-Type: application/json' -d '${PARAMS_JSON}' ${API_URL}"

在上面的示例中,定义了一个名为my-container的容器,并设置了两个环境变量:API_URL和PARAMS_JSON。在PARAMS_JSON中,我们以JSON格式设置了要提交的参数。在preStop钩子中,我们使用curl命令来调用外部HTTP API,该API的URL和参数值都是从环境变量中获取的。

在容器即将停止之前,Kubernetes将执行preStop钩子中定义的命令。在本示例中,当Pod的生命周期结束时,将执行curl命令,并向http://example.com/api发送POST请求,参数以JSON格式提交,Content-Type设置为application/json。

请注意,上述示例仅供参考。实际上,你需要根据你的特定情况和需求进行修改。