我是Kubernetes的新手。尝试将第一个Pod部署在从属服务器上时,我遇到以下错误,只需设置一个主服务器和另一个从属服务器(两个Ec2实例)的堆栈即可。你能把我赶出去吗?错误文件已附加。
错误:
警告FailedCreatePodSandBox 34m kubelet,从节点失败创建Pod沙箱失败:rpc错误:代码=未知desc =未能设置沙箱容器“ 26cdaf3170806455a4731218d20c482bb2a41ded6ef85c90b560058e332df684”网络将Pod网络标签集设置为Pod网络标签: “ label-demo_default”网络:打开/run/flannel/subnet.env:没有此类文件或目录
答案 0 :(得分:0)
由于该群集的状态,部署的精确度以及kubectl
,kubelet
的输出消息是未知的,我将尝试给出一些故障排除步骤和情况,这些可能会导致解决这里遇到的一些问题。
第一件事是使用kubeadm
:
使用官方文档检查所有要求和步骤:
调用$ kubeadm init
命令时,请确保添加如下参数:
--apiserver-advertise-address=IP_ADDRESS_OF_MASTER_NODE
--pod-network-cidr=POD_NETWORK_CIDR_WITH_ACCORDANCE_TO_CNI
不提供--pod-network-cidr
参数的配置群集可能会导致与CNI相关的问题。
对于Flannel,默认的pod网络cidr为10.244.0.0/16
。
在kubeadm init
之后,您需要应用许多CNI(例如Flannel或Calico),因为kubeadm
工具不会自动执行此操作。
请使用以下命令检查是否所有节点都处于Ready
状态:
$ kubectl get nodes -o wide
此命令的输出应如下所示:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k1 Ready master 69m v1.17.3 10.156.0.29 <none> Ubuntu 18.04.4 LTS 5.0.0-1031-gcp docker://19.3.7
k2 Ready <none> 65m v1.17.3 10.156.0.30 <none> Ubuntu 18.04.4 LTS 5.0.0-1031-gcp docker://19.3.7
k3 Ready <none> 63m v1.17.3 10.156.0.35 <none> Ubuntu 18.04.4 LTS 5.0.0-1031-gcp docker://19.3.7
此外,您可以$ kubectl describe node NAME_OF_THE_NODE
获取有关每个节点的更多详细信息。
有有关解决绒布相关问题的官方文档:Github.com: flannel troubleshooting
您从kubelet
收到的消息:
警告FailedCreatePodSandBox 34m kubelet,从节点失败创建Pod沙箱失败:rpc错误:代码=未知desc =未能设置沙箱容器“ 26cdaf3170806455a4731218d20c482bb2a41ded6ef85c90b560058e332df684”网络将Pod网络标签集设置为Pod网络标签: “ label-demo_default”网络:打开/run/flannel/subnet.env:没有此类文件或目录
告诉我们在计划安排subnet.env
吊舱的节点上缺少sandbox
个文件。
此外,请检查Flannel Pod是否运行正常。您可以使用以下任一方法进行检查:
$ kubectl get pods -A
$ kubectl get pods -n kube-system
此外,您还可以通过运行以下命令来检查此Pod的日志:
$ kubectl logs NAME_OF_FLANNEL_CONTAINER
您可以使用以下方法(在systemd操作系统上)检查kubelet
日志:
$ systemctl status kubelet
$ journalctl -u kubelet
我设法重现了您遇到的错误,并且该错误在以下时间发生:
--pod-network-cidr=CIDR
未与$ kubeadm init
一起使用$ kubeadm init
的{{1}}之后应用了法兰式CNI 有一篇有关网络故障排除的文章:Kubernetes.feisky.xyz: Network。
如果还有其他问题,请告诉我