Kubernetes无法检索日志

时间:2018-04-07 13:42:49

标签: kubernetes

我在CentOS VM中部署了kubeadm集群。在github之后尝试部署ingress controller时,我注意到我无法看到日志:

kubectl logs -n ingress-nginx nginx-ingress-controller-697f7c6ddb-x9xkh --previous

Error from server: Get https://192.168.56.34:10250/containerLogs/ingress-nginx/nginx-ingress-controller-697f7c6ddb-x9xkh/nginx-ingress-controller?previous=true: dial tcp 192.168.56.34:10250: getsockopt: connection timed out

在192.168.56.34(node1)中,netstat返回:

tcp6       0      0 :::10250                :::*                    LISTEN      1068/kubelet

事实上,尽管pod的状态如此,我仍然无法看到任何日志。

我同时停用了firewalldSELinux

我使用proxy启用kubernertes下载图片,现在我删除了代理。

导航到上面错误中的网址时,我会Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy)

我也可以获取我的节点:

kubectl get node
NAME         STATUS     ROLES     AGE       VERSION
k8s-master   Ready      master    32d       v1.9.3
k8s-node1    Ready      <none>    30d       v1.9.3
k8s-node2    NotReady   <none>    32d       v1.9.3

2 个答案:

答案 0 :(得分:2)

  

getsockopt:连接超时

99.99999%是防火墙问题。如果它是“连接被拒绝”,那么显示netstat的输出将是有意义的,但是(正如你所看到的)$guessedUploadTime = 3;// guessed time that ncftpput takes to finish $currTime = time(); $modTime = filemtime('image.jpg'); if( ($currTime - $modTime) < $guessedUploadTime) { sleep($guessedUploadTime); } $file = '/path/to/image.jpg'; $type = 'image/jpeg'; header('Content-Type:'.$type); readfile($file); 正在侦听该端口就好了 - 这是正在运行的机器之间的网络配置{{ 1}}和“192.168.56.34”未正确配置为允许流量。

apiserver希望每个想要查看日志(或使用kubelet)的人都可以到达集群中每个节点上的那个端口;所以请确保您不仅修复该节点的防火墙规则 - 为所有节点修复它。

答案 1 :(得分:0)

此消息来自主服务器上运行的 apiserver 。在本地计算机上运行的命令kubectl logs通过apiserver获取日志。因此,错误消息显示主服务器和节点之间的防火墙配置错误 (端口10250)