簡體   English   中英

將節點添加到 kubernetes 集群導致無法加載 Kubelet 配置文件 /var/lib/kubelet/config.yaml 並且在 /etc/cni/net.d 中找不到網絡

[英]Adding node to kubernetes cluster gives failed to load Kubelet config file /var/lib/kubelet/config.yaml and no networks found in /etc/cni/net.d

我有一個兩節點的 k8s 集群在工作。 我向集群中添加了另一個節點, sudo kubeadm join ...命令報告該節點已加入集群。 新節點卡在 NotReady 狀態:

kubectl get nodes
NAME               STATUS     ROLES    AGE    VERSION
msi-ubuntu18       NotReady   <none>   29m    v1.19.0
tv                 Ready      master   131d   v1.18.6
ubuntu-18-extssd   Ready      <none>   131d   v1.17.4

journalctl -u kubelet顯示此錯誤:

Started kubelet: The Kubernetes Node Agent.
  22039 server.go:198] failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/l...

但是文件 /var/lib/kubelet/config.yaml 存在並且看起來沒問題。

sudo systemctl status kubelet顯示不同的錯誤:

kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plu
cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d

並且新節點上沒有 /etc/cni/ 目錄。 (現有節點有 /etc/cni/net.d/ 和 calico 文件。)如果我運行

kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

再次在主人身上它沒有解決問題。 新節點上仍然沒有 /etc/cni/ 目錄。

創建新節點時我一定錯過了一步。 如何獲取新節點上的 /etc/cni/ 目錄? 同樣令人費解的是,當新節點卡在 NotReady 時, kubeadm join ...命令指示成功。

對於遇到這個問題的其他人,我終於能夠通過這樣做來解決這個問題

kubectl delete -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

其次是

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

我幾個月前安裝的 3.11 版本與新節點之間一定存在一些版本不兼容。

當使用 pods cidr #kubeadm init --pod-network-cidr=10.10.0.0/16 初始化集群時,我也遇到同樣的情況

在此處輸入圖片說明

但是,#kubectl get pods --all-namespaces 命令幫助解決了這個問題。

在此處輸入圖片說明

我剛剛遇到了類似的情況,但近因在更高的層次上。

基本上,我將一些 Gatekeeper 安全策略應用到了kube-system命名空間,卻沒有意識到我必須對kube-proxyaws-node (這是在 EKS 中)進行例外處理。

kube 事件日志中的幾個示例:

[denied by psp-pods-allowed-user-ranges] Container kube-proxy is attempting to run without a required securityContext/runAsGroup. Allowed runAsGroup: {"ranges": [{"max": 65535, "min": 1}], "rule": "MustRunAs"}
[denied by caps-constraints] container <kube-proxy> is not dropping all required capabilities. Container must drop all of ["ALL"]
[denied by psp-hostfs-constraints] HostPath volume {"name": "xtables-lock", "hostPath": {"path": "/run/xtables.lock", "type": "FileOrCreate"}} is not allowed, pod: kube-proxy-j5h2d. Allowed path: [{"pathPrefix": "/tmp", "readOnly": true}]

應用更改后,我有一個月沒有注意到這一點; 它僅在我的一個 EKS 節點出於某種原因重新啟動后才出現。

在這里發帖希望它可以在我失去的那一天拯救其他人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM