如何解决与正在运行的Kubernetes Pod交互的问题(超时错误)?

时间:2019-01-24 19:38:26

标签: amazon-ec2 kubernetes

我有两个EC2实例,一个实例运行Kubernetes Master节点,另一个实例运行Worker节点。我可以从部署文件中成功创建一个容器,该容器可以提取docker映像,并且其状态为“正在运行”。但是,当我尝试与之交互时,会出现超时错误。

例如:kubectl logs <pod-name> -v6

输出:

Config loaded from file /home/ec2-user/.kube/config GET https://<master-node-ip>:6443/api/v1/namespaces/default/pods/<pod-name> 200 OK in 11 milliseconds GET https://<master-node-ip>:6443/api/v1/namespaces/default/pods/<pod-name>/log 500 Internal Server Error in 30002 milliseconds Server response object: [{"status": "Failure", "message": "Get https://<worker-node-ip>:10250/containerLogs/default/<pod-name>/<container-name>: dial tcp <worker-node-ip>:10250: i/o timeout", "code": 500 }]

我可以通过运行kubectl describe pod <pod-name>获取有关广告连播的信息,并将状态确认为“正在运行”。关于如何准确识别导致此错误的原因和/或如何解决此错误的任何想法?

1 个答案:

答案 0 :(得分:0)

可能您没有在Kubernetes集群中安装任何network add-on。它不包括在kubeadm安装中,但在不同节点上计划的pod之间进行通信是必需的。最受欢迎的是印花布和法兰绒。由于已经有了群集,因此您可能希望选择使用与群集初始化期间使用kubeadm init --pod-network-cidr=xx.xx.xx.xx/xx声明的子网相同的子网的网络附件。

    Calico网络插件的默认设置为
  • 192.168.0.0/16
  • 法兰绒网络插件默认为
  • 10.244.0.0/16

您可以通过下载相应的YAML文件并将默认子网替换为所需的子网来进行更改。然后只需使用kubectl apply -f filename.yaml