如果上述操作完成后,還存在某個(gè)節(jié)點(diǎn)處于NotReady狀態(tài),可以在Master將該節(jié)點(diǎn)刪除
1)# master節(jié)點(diǎn)將該節(jié)點(diǎn)刪除
kubectl drain k8snode1 --delete-local-data --force --ignore-daemonsetskubectl delete node k8snode1?
2)# 然后到k8snode1節(jié)點(diǎn)進(jìn)行重置?
kubeadm reset
3)# 重置完后在加入
kubeadmjoin 192.168.177.130:6443--token8j6ui9.gyr4i156u30y80xf--discovery-token-ca-cert-hashsha256:eda1380256a62d8733f4bddf926f148e57cf9d1a3a58fb45dd6e80768af5a500
1.錯誤一
在執(zhí)行Kubernetes init方法的時(shí)候土至,出現(xiàn)這個(gè)問題
error execution phase preflight:[preflight] Some fatal errors occurred:[ERROR NumCPU]: the number of available CPUs 1 is less than the required 2
是因?yàn)閂Mware設(shè)置的核數(shù)為1,而K8S需要的最低核數(shù)應(yīng)該是2输钩,調(diào)整核數(shù)重啟系統(tǒng)即可
錯誤二
在給node1節(jié)點(diǎn)使用 kubernetes join命令的時(shí)候床玻,出現(xiàn)以下錯誤
error execution phase preflight:[preflight] Some fatal errors occurred:[ERROR Swap]: running with swap on is not supported. Please disable swap
錯誤原因是需要關(guān)閉swap
# 關(guān)閉swap
# 臨時(shí)? swapoff? -a?
# 永久? sed? -ri? 's/.*swap.*/#&/'? ?/etc/fstab? ? ? (-r? ?表示使用擴(kuò)展的正則表達(dá)式)
3.錯誤三
在給node節(jié)點(diǎn)使用 kubernetes join命令的時(shí)候,出現(xiàn)以下錯誤
The HTTP call equal to 'curl -sSL http://localhost:10248/healthz'? failed with error: Get http://localhost:10248/healthz: dial tcp[::1]:10248: connect: connection refused
解決方法屑柔,首先需要到 master 節(jié)點(diǎn)屡萤,創(chuàng)建一個(gè)文件
# 創(chuàng)建文件夾
mkdir? /etc/systemd/system/kubelet.service.d?
# 創(chuàng)建文件
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# 添加如下內(nèi)容
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests? ?--allow-privileged=true? ?--fail-swap-on=false"
# 重置
kubeadm reset
#刪除剛剛創(chuàng)建的配置目錄
rm? -rf? ?$HOME/.kube
#然后 在master重新初始化
kubeadm init--apiserver-advertise-address=192.168.31.200? --image-repositoryregistry.aliyuncs.com/google_containers--kubernetes-version? ?v1.18.0? ?--service-cidr=10.96.0.0/12? ?--pod-network-cidr=10.244.0.0/16
#初始完成后,再到 node節(jié)點(diǎn)掸宛,執(zhí)行 kubeadm join命令死陆,加入到master
kubeadm join 192.168.31.200:6443 --token darpgd.1hc96uxp56e4sso2 \
? ? --discovery-token-ca-cert-hash sha256:4b7d42d21c6dd78d3dd552b5937b48cd65d5b1b7091d6237d8283d1756b6c930
#添加完成后,使用下面命令唧瘾,查看節(jié)點(diǎn)是否成功添加
kubectl get nodes
4.錯誤四
在執(zhí)行查看節(jié)點(diǎn)的時(shí)候措译, kubectl get nodes 會出現(xiàn)問題
Unable to connect to the server: x509: certificate signed by unknown authority(possibly because of "?crypto/rsa: verification error"? while trying to verify candidate authority certificate"kubernetes")
這是因?yàn)橹皠?chuàng)建的配置文件還存在,也就是這些配置
mkdir -p? $HOME/.kube
sudo cp? -i? /etc/kubernetes/admin.conf? ?$HOME/.kube/config?
sudo chown? $(id-u):$(id-g)? ?$HOME/.kube/config
#需要做的就是把配置文件刪除饰序,然后重新執(zhí)行一下
rm? -rf? $HOME/.kube
然后再次創(chuàng)建一下即可
mkdir -p? $HOME/.kube
sudo cp? -i? /etc/kubernetes/admin.conf? ?$HOME/.kube/config?
sudo chown? $(id-u):$(id-g)? ?$HOME/.kube/config
這個(gè)問題主要是因?yàn)樵趫?zhí)行 kubeadm reset 的時(shí)候领虹,沒有把 $HOME/.kube 給移除掉,再次創(chuàng)建時(shí)就會出現(xiàn)問題了
5.錯誤五
1)在使用下面命令求豫,添加node節(jié)點(diǎn)到集群上的時(shí)候
kubeadm join 192.168.31.200:6443 --token darpgd.1hc96uxp56e4sso2 \
? ? --discovery-token-ca-cert-hash sha256:4b7d42d21c6dd78d3dd552b5937b48cd65d5b1b7091d6237d8283d1756b6c930
然后出現(xiàn)了這個(gè)錯誤
出于安全考慮塌衰,Linux系統(tǒng)默認(rèn)是禁止數(shù)據(jù)包轉(zhuǎn)發(fā)的诉稍。所謂轉(zhuǎn)發(fā)即當(dāng)主機(jī)擁有多于一塊的網(wǎng)卡時(shí),其中一塊收到數(shù)據(jù)包最疆,根據(jù)數(shù)據(jù)包的目的ip地址將包發(fā)往本機(jī)另一網(wǎng)卡均唉,該網(wǎng)卡根據(jù)路由表繼續(xù)發(fā)送數(shù)據(jù)包。這通常就是路由器所要實(shí)現(xiàn)的功能肚菠。也就是說?/proc/sys/net/ipv4/ip_forward?文件的值不支持轉(zhuǎn)發(fā)
0:禁止
1:轉(zhuǎn)發(fā)
所以需要將值修改成1即可
echo "1"? > /proc/sys/net/ipv4/ip_forward? ? ?&& sysctl? -p
修改完成后舔箭,重新執(zhí)行命令即可
2)重新執(zhí)行命令后報(bào)錯:
解決方法:
rm -rf /etc/kubernetes/kubelet.conf
rm -rf /etc/kubernetes/pki/ca.crt
再次執(zhí)行添加node命令:
kubeadm join 192.168.31.200:6443 --token darpgd.1hc96uxp56e4sso2 \
? ? --discovery-token-ca-cert-hash sha256:4b7d42d21c6dd78d3dd552b5937b48cd65d5b1b7091d6237d8283d1756b6c930
6.問題六
在安裝網(wǎng)絡(luò)插件的時(shí)候flannel狀態(tài)為Init:ImagePullBackOff
1)查看kube-flannel.yml文件時(shí)發(fā)現(xiàn)quay.io/coreos/flannel:v0.13.1-rc2-amd64
quay.io網(wǎng)站網(wǎng)絡(luò)不可達(dá)
2)下載flanneld:v0.13.1-rc2-amd64導(dǎo)入到docker中
可以去https://github.com/coreos/flannel/releases官方倉庫下載鏡像
3)導(dǎo)入鏡像,命令蚊逢,特別提示层扶,3個(gè)機(jī)器都需要導(dǎo)入,
docker load < flanneld-v0.13.1-rc2-amd64.docker
4)再次查看kubectl get pod -n kube-system??