Kubernetes “我犯了错误”;networkPlugin cni无法设置pod“;关于部署吊舱

Kubernetes “我犯了错误”;networkPlugin cni无法设置pod“;关于部署吊舱,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我是库伯内特斯的新手。在尝试将我的第一个pod部署到下面的从机上时,只需设置堆栈一个主机和另一个从机(两个Ec2实例)。你能帮我出去吗。错误文件已附加 错误: 警告失败CreatePodSandbox 34m kubelet,从属节点无法创建pod sandbox:rpc错误:代码=未知描述=无法设置沙盒容器“26CDAF3170806455A4731218D20C482BB2BA41DED6EF85C90B56058E332DF684”pod“标签演示”网络:networkPlugin cni

我是库伯内特斯的新手。在尝试将我的第一个pod部署到下面的从机上时,只需设置堆栈一个主机和另一个从机(两个Ec2实例)。你能帮我出去吗。错误文件已附加

错误:

警告失败CreatePodSandbox 34m kubelet,从属节点无法创建pod sandbox:rpc错误:代码=未知描述=无法设置沙盒容器“26CDAF3170806455A4731218D20C482BB2BA41DED6EF85C90B56058E332DF684”pod“标签演示”网络:networkPlugin cni无法设置pod“标签演示”默认值网络:open/run/flannel/subnet.env:没有这样的文件或目录


由于此群集的状态、部署方式以及
kubectl
kubelet
的输出消息都是未知的,因此我将尝试给出一些故障排除步骤和情况,以解决此处遇到的一些问题

  • 库比德
  • 法兰绒
  • 库贝莱
  • 再生产
  • 附加链接
库比德 第一件事是使用
kubeadm
配置Kubernetes集群:

使用官方文件检查所有要求和步骤:

调用
$kubeadm init
命令时,请确保添加如下参数:

  • ——apiserver播发地址=主节点的IP地址
  • --pod网络cidr=符合CNI的pod网络cidr
没有
的配置群集--pod网络cidr
参数可能导致CNI相关问题。

对于法兰绒,默认pod网络cidr为
10.244.0.0/16

kubeadm init
之后,由于
kubeadm
工具不会自动执行,您需要应用许多CNI(如法兰绒或印花布)中的一种

请使用以下命令检查所有节点是否处于
Ready
状态:

$kubectl获取节点-o宽

此命令的输出应如下所示:

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 Ubuntu 18.04.4 LTS 5.0.0-1031-gcpdocker://19.3.7
k2就绪65m v1.17.3 10.156.0.30 Ubuntu 18.04.4 LTS 5.0.0-1031-gcpdocker://19.3.7
k3 Ready 63m v1.17.3 10.156.0.35 Ubuntu 18.04.4 LTS 5.0.0-1031-gcpdocker://19.3.7
此外,您可以
$kubectl描述\u节点的节点名称\u
,以获取每个节点的详细信息

法兰绒 有关于解决法兰绒相关问题的官方文档:

您从
kubelet
收到的消息:

警告失败CreatePodSandbox 34m kubelet,从属节点无法创建pod sandbox:rpc错误:代码=未知描述=无法设置沙盒容器“26CDAF3170806455A4731218D20C482BB2BA41DED6EF85C90B56058E332DF684”pod“标签演示”网络:networkPlugin cni无法设置pod“标签演示”默认值网络:open/run/flannel/subnet.env:没有这样的文件或目录

正在告知本应调度
沙箱的节点上缺少
subnet.env
文件

此外,请检查法兰绒吊舱是否正常运行。您可以通过以下任一方式进行检查:

  • $kubectl获得吊舱-A
  • $kubectl获取吊舱-n kube系统
此外,您还可以通过运行以下命令来检查此POD的日志:
$kubectl记录法兰绒容器的名称

库贝莱 您可以通过(在systemd操作系统上)检查kubelet的日志,方法是:

  • $systemctl status kubelet
  • $journalctl-u kubelet
繁殖 我已成功重现了您遇到的错误,它发生在:

  • --pod网络cidr=cidr
    未与
    $kubeadm init
  • 法兰绒CNI在
    $kubeadm init
    之后应用,无
    --pod网络cidr
其他链接: 有一篇文章讨论网络故障排除:


如果您有任何其他问题,请告诉我

您是否部署了法兰绒?它是否在kube系统名称空间中运行?提供kubectl get pods-n kube系统的输出您是如何创建集群的?它是用
kubeadm
或类似
kubespray
的东西创建的吗?ubuntu@master-节点:~$kubectl get pods-n kube系统名称就绪状态重新启动coredns-6955765f44-d8fw9 1/1运行8 27h coredns-6955765f44-l5cjz 1/1运行2 27h运行327HI的etcd主节点1/1使用Kubeadm设置我的群集请查看此评论,并告知是否有帮助。此外,请更新您的帖子,如
kubectl get nodes-o wide
kubectl get pods-A
谢谢,您的信息真的很有用。我通过以不同的方式重新安装集群解决了这个问题。