繁体   English   中英

Nginx Kubernetes POD 停留在 ContainerCreating

[英]Nginx Kubernetes POD stays in ContainerCreating

我能够使用一个主节点和两个工作节点在 Centos7 上设置 Kubernetes 集群,但是当我尝试使用 nginx 部署一个 pod 时,该 pod 的状态永远保持在 ContainerRunning 并且似乎没有摆脱它。

对于 pod 网络,我使用的是印花布。 你能帮我解决这个问题吗? 出于某种原因,如果不解决这个问题,我对继续前进感到不满意,我试图检查论坛等,自过去两天以来,这是我与您联系的最后手段。

[root@kube-master ~]# kubectl get pods --all-namespaces
[get pods result][1]

但是,当我运行 describe pods 时,我在 events 部分下看到 nginx 容器的以下错误。

Warning  FailedCreatePodSandBox  41s (x8 over 11m)     kubelet,
kube-worker1  (combined from similar events): Failed to create pod
sandbox: rpc error: code = Unknown desc = failed to set up sandbox
container
"ac77a42270009cba0c508e2fd82a84d6caef287bdb117d288d5193960b52abcb"
network for pod "nginx-6db489d4b7-2r4d2": networkPlugin cni failed to
set up pod "nginx-6db489d4b7-2r4d2_default" network: unable to connect
to Cilium daemon: failed to create cilium agent client after 30.000000
seconds timeout: Get http:///var/run/cilium/cilium.sock/v1/config:
dial unix /var/run/cilium/cilium.sock: connect: no such file or
directory

希望你能在这里提供帮助。

编辑1:

主VM的ip地址是192.168.40.133

使用以下命令初始化 kubeadm: kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address 192.168.40.133

使用以下命令安装 pod 网络: kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

上面的kubeadm init给了我用来将工作人员加入集群的 join 命令。

所有 VM 都连接到主机和桥接网络适配器。

您的 pod 子网(由--pod-network-cidr指定)与您的虚拟机所在的网络发生冲突:这两个必须是不同的。 为 pod 子网使用其他东西,例如10.244.0.0/16 ,然后在应用它之前编辑 calico.yaml 如官方文档中所述

POD_CIDR="10.244.0.0/16"
kubeadm init --pod-network-cidr=${POD_CIDR} --apiserver-advertise-address 192.168.40.133
curl https://docs.projectcalico.org/manifests/calico.yaml -O
sed -i -e "s?192.168.0.0/16?${POD_CIDR}?g" calico.yaml
kubectl apply -f calico.yaml

希望这可以帮助 :)

注意:您实际上并不需要指定--apiserver-advertise-address标志: kubeadm大部分时间都会正确检测机器的主 IP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM