kubectl 日志不起作用,所有其他命令都有效



在 kubernetes 1.5.2 上,所有突然的kubectl 日志都显示错误,而其他命令工作正常,所以集群设置肯定没有问题,但可能是某种错误。请告知是否有解决方法可以使日志正常工作。

$ kubectl logs -f some-pod-name

错误给出如下:

**Error from server: Get https://Minion-1-IP:10250/containerLogs/default/some-pod-name-3851540691-b18vp/some-pod-name?follow=true: net/http: TLS handshake timeout**

请帮忙。

简而言之,对我来说,问题是由配置错误的代理引起的。

上周我遇到了同样的症状。在闲逛了一段时间后,这个问题出现了。

对我来说,这是因为我初始化了集群

HTTP_PROXY=http://10.196.109.214:8118 HTTPS_PROXY=http://10.196.109.214:8118 NO_PROXY=10.196.109.214,localhost,127.0.0.1 kubeadm init

10.196.109.214是我的主节点,我在其上设置了 http 代理。代理设置会自动写入 kubernete manifists。NO_PROXY这里不包括任何工作节点,因此一切正常,但我无法从工作线程检索任何日志。

我只是手动编辑了/etc/kubernetes/manifests/kube-*.yaml的环境部分并添加了工作节点的ips:

env:
- name: NO_PROXY
value: 10.196.109.214,10.196.109.215,10.196.109.216,10.196.109.217,localhost,127.0.0.1
- name: HTTP_PROXY
value: http://10.196.109.214:8118
- name: HTTPS_PROXY
value: http://10.196.109.214:8118

然后找到带有kubectl -n kube-system get pods的相对 pod 并用kubectl -n kube-system delete pod <pod-name>删除它们,等待它们被 kubelet 重新创建。现在一切正常。

我认为集群设置存在问题。此错误消息不是来自kubectl和 apiserver 之间的连接,而是来自 apiserver 和 kubelet 之间的连接。因此,这两者之间的证书可能不正确。

免责声明:我现在无法验证这个想法,但我们前段时间遇到了类似的问题。

最新更新