Kubelet 已经用 pod 网络为 Calico 初始化:

sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --image-repository=someserver

然后我得到 calico.yaml v3.11 并应用它:

sudo kubectl --kubeconfig="/etc/kubernetes/admin.conf" apply -f calico.yaml

在我检查 pod 状态之后:

sudo kubectl --kubeconfig="/etc/kubernetes/admin.conf" get nodes
NAME              STATUS     ROLES    AGE     VERSION
master-1   NotReady   master   7m21s   v1.17.2

在描述中,我已经对 cni 配置进行了统一化,但我认为 calico 应该这样做?

MemoryPressure   False   Fri, 21 Feb 2020 10:14:24 +0100   Fri, 21 Feb 2020 10:09:00 +0100   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Fri, 21 Feb 2020 10:14:24 +0100   Fri, 21 Feb 2020 10:09:00 +0100   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Fri, 21 Feb 2020 10:14:24 +0100   Fri, 21 Feb 2020 10:09:00 +0100   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            False   Fri, 21 Feb 2020 10:14:24 +0100   Fri, 21 Feb 2020 10:09:00 +0100   KubeletNotReady              runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

事实上,我在 /etc/cni/net.d/ 下什么都没有,所以它似乎忘记了什么?

ll /etc/cni/net.d/
total 0
sudo kubectl --kubeconfig="/etc/kubernetes/admin.conf" -n kube-system get pods
    NAME                                       READY   STATUS                  RESTARTS   AGE
calico-kube-controllers-5644fb7cf6-f7lqq   0/1     Pending                 0          3h
calico-node-f4xzh                          0/1     Init:ImagePullBackOff   0          3h
coredns-7fb8cdf968-bbqbz                   0/1     Pending                 0          3h24m
coredns-7fb8cdf968-vdnzx                   0/1     Pending                 0          3h24m
etcd-master-1                       1/1     Running                 0          3h24m
kube-apiserver-master-1            1/1     Running                 0          3h24m
kube-controller-manager-master-1    1/1     Running                 0          3h24m
kube-proxy-9m879                           1/1     Running                 0          3h24m
kube-scheduler-master-1             1/1     Running                 0          3h24m

正如所解释的,我正在浏览一个本地仓库,而 journalctl 说:

 kubelet[21935]: E0225 14:30:54.830683   21935 pod_workers.go:191] Error syncing pod cec2f72b-844a-4d6b-8606-3aff06d4a36d ("calico-node-f4xzh_kube-system(cec2f72b-844a-4d6b-8606-3aff06d4a36d)"), skipping: failed to "StartContainer" for "upgrade-ipam" with ErrImagePull: "rpc error: code = Unknown desc = Error response from daemon: Get https://repo:10000/v2/calico/cni/manifests/v3.11.2: no basic auth credentials"
 kubelet[21935]: E0225 14:30:56.008989   21935 kubelet.go:2183] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

感觉不仅仅是CNI的问题

#1楼 票数:2

核心 DNS pod 将处于挂起状态,并且 master 将处于 NotReady 状态,直到 calico pod 成功运行并且 CNI 设置正确。

从 docker.io 下载 calico docker 图像似乎是网络问题。 因此,您可以从 docker.io 中提取 calico 图像并将其推送到您的内部容器注册表,然后修改 calico yaml 以在 calico.yaml 的图像部分中引用该注册表,最后将修改后的 calico yaml 应用于 kubernetes 集群。

#2楼 票数:2 已采纳

所以 Init:ImagePullBackOff 的问题是它不能自动从我的私人仓库应用图像。 我不得不从 docker 中为 calico 拉取所有图像。 然后我删除了它用新推送的图像重新创建的 calico pod

sudo docker pull private-repo/calico/pod2daemon-flexvol:v3.11.2
sudo docker pull private-repo/calico/node:v3.11.2
sudo docker pull private-repo/calico/cni:v3.11.2
sudo docker pull private-repo/calico/kube-controllers:v3.11.2

sudo kubectl -n kube-system delete po/calico-node-y7g5

之后节点重新执行所有初始化阶段并:

sudo kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-5644fb7cf6-qkf47   1/1     Running   0          11s
calico-node-mkcsr                          1/1     Running   0          21m
coredns-7fb8cdf968-bgqvj                   1/1     Running   0          37m
coredns-7fb8cdf968-v85jx                   1/1     Running   0          37m
etcd-lin-1k8w1dv-vmh                       1/1     Running   0          38m
kube-apiserver-lin-1k8w1dv-vmh             1/1     Running   0          38m
kube-controller-manager-lin-1k8w1dv-vmh    1/1     Running   0          38m
kube-proxy-9hkns                           1/1     Running   0          37m
kube-scheduler-lin-1k8w1dv-vmh             1/1     Running   0          38m

  ask by Albz translate from so

未解决问题?本站智能推荐:

1回复

Kubelet-未能为coredns“CreatePodSandbox”;无法设置网桥地址:无法将ip地址添加到“cni0”:权限被拒绝

编辑 1 作为对评论的回应,我提供了更多信息。 更多 systemd 日志 我已经成功地使用 CRI-0 1.18 安装了 Kubernetes 1.18 并使用 kubeadm init --pod-network-cidr=192.168.0.0/16 设置了一个集群。 然而,“coredns”
1回复

l2cni插件与l3插件有什么区别?

l2 cni插件与l3 cni插件有什么区别? L2 CNI插件不提供对Pod的公共访问吗?L2和L3插件的示例是什么
1回复

KubernetesAPI服务器无法启动:找不到api-server(master-host)主机

我已经使用 kubeadm 设置了 Kubernetes 集群,并且运行良好。 我能够部署 Pod 和服务。 我曾尝试重新启动集群,它过去没有任何问题。 突然,几天后,我不得不重新启动我的机器(在 vms 上托管集群)并且集群开始没有出现。 无法理解为什么现在开始发生这种情况。 有人可以帮我解决这个
2回复

网络插件未准备好:cni配置未初始化

Kubelet 未就绪runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uniniti
1回复

apiserver可以通过CNI提供的网络连接到节点的Kubelet端口吗?

Weave Net的套管模式允许将NAT后面的节点添加到网格中,例如公司网络中没有外部IP的机器。 当Weave Net与Kubernetes一起使用时,可以将此类节点添加到群集中。 唯一的缺点(除了与fastdp相比的性能)似乎是Kubernetes API服务器无法到达Kubelet端
1回复

kubernetes:如何查看或列出已安装的CNI插件?

假设我刚刚安装了Kubernetes CNI插件之一,例如: 我可以查看或列出已安装的CNI插件吗? 安装后如何知道其运行? 或者,如果我“ kubectl删除”插件,我怎么知道它已被删除? 安装插件后,我希望能看到一些为此插件创建的对象。 因此,如果要删除它,则不必记住我以前安
1回复

用于Windows网络的Kubernetes-默认CNI

在此官方文档下 ,Windows尚未完全支持calico和法兰绒。 我计划使用ToR(机架顶部)静态路由。 如何安装默认的CNI? (什么都不做?) 例如,使用法兰绒我将需要运行-kubectl apply -f kube-flannel.yml 那么,对于ToR静态路由的默认C
1回复

Minikube中的默认CNI

我试图了解 Kubernetes 网络,现在我想知道在安装 Minikube 时是否默认使用 CNI,什么时候使用哪个? 换句话说,我可以在没有 Flannel 或 Calico 等 CNI 提供程序的情况下运行 Minikube 吗?