我有两个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>
获取有关广告连播的信息,并将状态确认为“正在运行”。关于如何准确识别导致此错误的原因和/或如何解决此错误的任何想法?
答案 0 :(得分:0)
可能您没有在Kubernetes集群中安装任何network add-on。它不包括在kubeadm安装中,但在不同节点上计划的pod之间进行通信是必需的。最受欢迎的是印花布和法兰绒。由于已经有了群集,因此您可能希望选择使用与群集初始化期间使用kubeadm init --pod-network-cidr=xx.xx.xx.xx/xx
声明的子网相同的子网的网络附件。
您可以通过下载相应的YAML文件并将默认子网替换为所需的子网来进行更改。然后只需使用kubectl apply -f filename.yaml