Kubernetes pod exec API - 需要升级请求

时间:2018-03-13 07:20:09

标签: kubernetes postman

我正在努力让POST和GET请求正常工作(通过Postman),但这就是我所得到的,

获取请求

viewDidLoad

获取回应

if let numPhone = Int(strPhone) {
     print(numPhone)
}

POST请求

curl -X GET http://localhost:8080/api/v1/namespaces/default/pods/mypod/exec

POST回复

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "the server could not find the requested resource",
  "reason": "NotFound",
  "details": {

  },
  "code": 404
}

关于如何使这些请求有效的任何想法?需要更改哪些参数?

由于

2 个答案:

答案 0 :(得分:1)

我认为你正试图进入一个吊舱。如果要执行pod,则需要websocket连接。

对于websocket连接,首先进行http(s)调用,然后使用 HTTP Upgrade 标头对websocket进行升级请求。

curl不支持从http升级到websocket。因此错误。

kubectl exec 对于这个用例会很方便。

您还可以尝试其他支持websockets的cli工具,例如

答案 1 :(得分:0)

wscat -n --header "Authorization: Bearer $TOKEN"   -c 'https://200.200.200.160:6443/api/v1/namespaces/default/pods/mysql/exec?command=bash&container=mysql&stdin=true&stdout=true&tty=true'

wscat:https://github.com/websockets/wscat

enter image description here