【问题标题】:kubectl exec returning `Handshake status 500`kubectl exec 返回“握手状态 500”
【发布时间】:2018-03-29 03:12:12
【问题描述】:

我在 AWS 上使用 python kubernetes 3.0.0 库和 kubernetes 1.6.6。

我有可以很快消失的豆荚。有时当我尝试对他们执行时,我会收到 ApiException Handshake status 500 错误状态。

in cluster configurationkube config 正在发生这种情况。

当 pod/container 不存在时,我收到 404 错误,这是合理的,但 500Internal Server Error。我在kube-apiserver.log 中没有发现任何500 错误,而我确实找到了404 错误。

这是什么意思,谁能指出我正确的方向。

【问题讨论】:

    标签: python kubernetes


    【解决方案1】:

    我知道这个问题有点老了,但我想我会分享我在尝试使用 python/kubernetes attach/exec 进行几个调试案例时发现的内容(因为在我能找到的任何地方都没有记录)。

    据我所知,关键在于使关键字参数与实际容器配置相匹配,而不是您希望容器执行的操作。

    使用 kubectl run 创建 pod 时,如果您不使用 -i --tty 标志(指示交互式/TTY 分配),然后尝试将 ttystdin 标志设置为函数,然后你会得到一个神秘的 500 错误,没有其他调试信息。如果您需要使用stdintty 并且您正在使用配置文件(而不是运行),请确保您使用set the stdin and tty flags to true in spec.containers

    在运行resp.readline_stdout() 时,如果您得到OverflowError: timestamp too large to convert to C _PyTime_t,请设置关键字参数timeout=<any integer>。默认情况下,超时变量默认为 None,这是该函数中的无效值。

    如果您运行 attach/exec 命令并获得 APIException 和状态代码 0,错误 Reason: hostname 'X.X.X.X' doesn't match either of...,请注意似乎与 Python 2 不兼容。适用于 Python 3。最终应该修补。

    当 pod 不存在时,我可以确认通过 ApiException 抛出 404 代码。

    如果您收到upgrade request required 的神秘错误,请注意您需要使用kubernetes.stream.stream 函数来包装对attach/exec 的调用。你可以看到这个issue on GitHubthis example code 来帮助你克服那部分。

    这是我的例子:resp = kubernetes.stream.stream(k8s.connect_get_namespaced_pod_attach, name='alpine-python-2', namespace="default", stderr=True, stdin=True, stdout=True, tty=True, _preload_content=False)

    注意_preload_content=Falseattach 命令中是必不可少的,否则调用将无限期阻塞。

    我知道这可能比您想要的更多信息,但希望至少其中一些信息会对您有所帮助。

    【讨论】:

      【解决方案2】:

      对我来说,500 的原因基本上是 pod 无法从 GCR 中拉取图像

      【讨论】:

        【解决方案3】:

        对我来说,原因是, 我有两个 pod,附有相同的标签,1 个 pod 处于 Evicted 状态,另一个正在运行,我删除了那个 pod,它被 Evicted 并修复了问题

        【讨论】:

          猜你喜欢
          • 2021-03-15
          • 1970-01-01
          • 1970-01-01
          • 2019-01-10
          • 1970-01-01
          • 2013-12-26
          • 1970-01-01
          • 1970-01-01
          • 2015-08-14
          相关资源
          最近更新 更多