以下報錯網上其實也可以找到並解決,但是偏零碎我只是根據自己的在使用中遇到的問題做個匯總。
首先刪掉節點
注意:以下操作都是在master下操作。
一:先將節點設置為維護模式(k8snode2是節點名稱)
kubectl drain k8snode02 --delete-local-data --force --ignore-daemonsets node/k8snode02
二:刪除節點
kubectl delete node k8snode02
三:確認是否已經刪除
kubectl get nodes
三:生成永久Token(node加入的時候會用到)
kubeadm token create --ttl 0 --print-join-command
`kubeadm join 192.168.233.3:6443 --token rpi151.qx3660ytx2ixq8jk --discovery-token-ca-cert-hash sha256:5cf4e801c903257b50523af245f2af16a88e78dc00be3f2acc154491ad4f32a4`#這是生成的Token,node加入時使用,此``是起到注釋作用,無其他用途。
四:查看Token確認
kubeadm token list
node重新加入
注意:以下操作在node下操作
一:停掉kubelet
systemctl stop kubelet
二:刪除之前的相關文件
rm -rf /etc/kubernetes/*
三:加入集群
kubeadm join 192.168.233.3:6443 --token rpi151.qx3660ytx2ixq8jk --discovery-token-ca-cert-hash sha256:5cf4e801c903257b50523af245f2af16a88e78dc00be3f2acc154491ad4f32a4
注意:如果你沒有另創建Token,也許會報類似以下錯:
error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists [ERROR FileAvailable--etc-kubernetes-bootstrap-kubelet.conf]: /etc/kubernetes/bootstrap-kubelet.conf already exists [ERROR Port-10250]: Port 10250 is in use [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=... `所以建議建立一個永久的,當然如果考慮到安全那么就需要每一次加入之前重新創建一個臨時的Token.
解決了一個報錯,這不又來了一個報錯,如以下報錯代碼:
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Unauthorized如遇到此報錯也不要急,接着在node上敲兩行代碼即可,如下操作:
kubeadm reset
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
操作完后再次執行加入集群命令即可。
