Kubelet 處於運作狀態,但 kubectl 給予與伺服器的連線被拒絕錯誤

Kubelet 處於運作狀態,但 kubectl 給予與伺服器的連線被拒絕錯誤

Kubernetes 叢集早期運作正常,在重新啟動主節點 (1.0.0.0) 後執行 kubectl 指令開始出現問題。當我運行kubectl get nodes命令時,出現以下錯誤。

# kubectl get nodes
The connection to the server 1.0.0.0:6443 was refused - did you specify the right host or port?

當我連接到主節點(1.0.0.0)時,連接埠 6443 未開啟以接受連接。netstat -lntp|grep 6443沒有輸出。 Kubelet 服務處於運作狀態,輸出systemctl status kubelet沒有顯示任何可疑內容。

嘗試重新啟動 kubelet 服務但沒有成功。swapoff -a重啟kubelet服務之前也嘗試過。

我是否缺少任何其他接受 6443 連接埠連線的服務?或者這是 kubelet 的工作但沒有這樣做?請幫忙。

注意:我的IP位址屏蔽為1.0.0.0,實際IP是不同的。到處只使用 Centos。

答案1

檢查以下可能的解決方案:

journalctl -xeu首先查看kubelet輸出的日誌,檢查是否error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directory重新啟動並啟用cri-dockerd 服務像下面這樣:

sudo systemctl enable cri-dockerd.service
sudo systemctl restart cri-dockerd.service then
sudo systemctl start kubelet

它可能對你有用,請查看github連結了解更多。

1)Kubeconfig 環境變數可能未設定。 export KUBECONFIG=/etc/kubernetes/admin.conf或者$HOME/.kube/config

2)使用者的$HOME目錄有no .kube/config檔案。如果您沒有 .kube 或設定文件

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf HOME/.kube/config sudo chown (id -u):$(id -g) 
$HOME/.kube/config

或者,您也可以像這樣匯出 KUBECONFIG 變數:

export KUBECONFIG=$HOME/.kube/config

3)上面的設定檔中配置的伺服器/連接埠是錯誤的。它與主伺服器的 IP/主機名稱相同嗎?如果沒有,你複製了嗎?你可能想解決這個問題。

順便說一句,您可以透過在 cli 上發出 hostname 命令來取得主機名稱。或 ifconfig 的 ip。

4)Docker 服務可能已關閉,因此 kubeapi pod 未運行

sudo systemctl start docker
sudo systemctl start kubelet
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown (id -u):(id -g) $HOME/.kube/config

5)Kubelet 服務可能已關閉。這可能是由於啟用了交換:

  • 須藤-i
  • 交換-a
  • 出口
  • strace -eopenat kubectl 版本

您可以再次輸入 kubectl getnodes ,如下所示。

在此輸入影像描述

6)可能是另一個原因'磁碟空間':

查看“df -h”,無覆蓋層或 shm(安裝在/var/lib/docker…)已列出,直到您增加可用磁碟空間。

7)按照下面類似的流程來解決您的問題

掌握

kubeadm 重置 kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40 --kubernetes-version=v1.18.0

    kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
        --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

    $ mkdir -p $HOME/.kube
    $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    $ sudo chown $(id -u):$(id -g) $HOME/.kube/config

節點1

$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
    --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

節點2

$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
    --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

掌握

$ kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
master   Ready    master   5m18s   v1.18.6
node1    Ready    <none>   81s     v1.18.6
node2    Ready    <none>   43s     v1.18.6
$ scp /root/.kube/config [email protected]:/root/.kube/config
$ scp /root/.kube/config [email protected]:/root/.kube/config

8)如果您仍然遇到問題,請嘗試以下操作:

重啟實例後,iptables 可能會導致問題。

sudo su
iptables -P INPUT ACCEPT ALL
iptables -F

另請參閱此文件描述了排除 kubectl 錯誤的步驟了解更多。

另請檢查類似的所以了解更多。

相關內容