使用kubernetes客户端corev1api运行`connect_get_namespaced_pod_exec`会产生错误请求-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

使用kubernetes客户端corev1api运行`connect_get_namespaced_pod_exec`会产生错误请求

2019-01-09 13:41:15 5917 1

kubernetes客户端corev1api connect_get_namespaced_pod_exec无法运行python。

我检查了python版本== 2.7和pip冻结 - ipaddress == 1.0.22,urllib3 == 1.24.1和websocket-client == 0.54.0是满足要求的版本 - 如下所述:https:/ /github.com/kubernetes-client/python/blob/master/README.md#hostname-doesnt-match 关注此线程上的问题 - https://github.com/kubernetes-client/python/issues/36 - not not很有帮助。

尝试使用流这里建议 - https://github.com/kubernetes-client/python/blob/master/examples/exec.py

api_response = stream(core_v1_api.connect_get_namespaced_pod_exec,

                  name, namespace,
                  command=exec_command,
                  stderr=True, stdin=False,
                  stdout=True, tty=False)

得到此错误:

ApiException:(0)原因:主机名'10 .47.7.95'与'','cluster.local'不匹配

没有流直接使用CoreV1Api -

core_v1_api = client.CoreV1Api()
api_response = core_v1_api.connect_get_namespaced_pod_exec(name=name,namespace=namespace,command=exec_command,stderr=True, stdin=False,stdout=True, tty=False)
得到此错误:

ApiException:(400)原因:错误请求HTTP响应标头:HTTPHeaderDict({'Date':'Sat,05 Jan 2019 08:01:22 GMT','Content-Length':'139','Content-Type': 'application / json'})HTTP响应正文:{“kind”:“状态”,“apiVersion”:“v1”,“元数据”:{},“状态”:“失败”,“消息”:“升级请求所需的”, “理由”: “错误请求”, “代码”:400}

取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:24:56

    我写了一个简单的程序来检查:

    from kubernetes import client, config
    from kubernetes.stream import stream

    create an instance of the API class

    config.load_kube_config()
    api_instance = client.CoreV1Api()

    exec_command = [

    '/bin/sh',
    '-c',
    'echo This is Prafull Ladha and it is test function']

    resp = stream(api_instance.connect_get_namespaced_pod_exec, "nginx-deployment-76bf4969df-467z2", 'default',

              command=exec_command,
              stderr=True, stdin=False,
              stdout=True, tty=False)

    print("Response: " + resp)
    它对我来说非常好。

    我相信你正在minikube用于开发目的。它无法识别您的主机名。您可以通过assert_hostname在程序中禁用来使其工作,如:

    from kubernetes.client import configuration
    config.load_kube_config()
    configuration.assert_hostname = False

    0 0
相关问答

4

回答

Spark 【问答合集】

社区小助手 2019-05-29 14:13:40 127120浏览量 回答数 4

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 226116浏览量 回答数 162

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 93749浏览量 回答数 28

3

回答

Logstash采集文件名称以及自定义格式的日志文件采集

Snorlax 2019-06-18 11:51:28 114890浏览量 回答数 3

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147221浏览量 回答数 22

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 136928浏览量 回答数 42

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305612浏览量 回答数 249

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 475553浏览量 回答数 24

11

回答

【精品问答合集】MongoDB热门问答

李博 bluemind 2019-05-29 16:50:19 121315浏览量 回答数 11

13

回答

【精品问答合集】Java热门问答

李博 bluemind 2019-05-29 16:00:45 125556浏览量 回答数 13
+关注
k8s小能手
整合最优质的专家资源和技术资料,问答解疑
26
文章
620
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载