我在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的状态如此,我仍然无法看到任何日志。
我同时停用了firewalld
和SELinux
。
我使用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
答案 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)